我正在尝试了解 AngularJS。我很喜欢它,但我似乎忽略了一个核心概念——模型在哪里?
例如,如果我有一个显示多个交易列表的应用程序。一个列表向服务器查询匹配某些条件的一组分页事务,另一个列表使用不同的条件,但可能有一些事务匹配这两个条件并最终出现在两个列表中。现在:
出现在两个列表中的交易在两个作用域中应该是相同的对象,对吧?这不是数据绑定的一大吸引力吗?一个地方的更新将镜像到另一个地方?
事务可能具有复杂的行为,抽象原始服务器 API 请求,需要对服务器进行后续查询以收集更多数据,监视自身变化并将其自身标记为脏,所有这些都去哪里了?
列表本身需要知道交易何时被删除,因此在一个列表中删除的同一交易将从另一个列表中消失。
我们可能想在某种客户端存储中缓存事务?
那么问题又来了:这一切都去哪儿了?这一切是否都被塞在 $rootScope 中并由控制器控制?委托给某项服务?
这里的任何指示,无论多么模糊,都将不胜感激。
Angular 的特点是它把模型留给你。您不必扩展某些内置对象即可使其工作,它可以是您想要的任何对象。
a) 是的,但就像我说的,这取决于你。如果您愿意,您甚至可以使用 Backbones 模型实现。
b) 可能在你的模型对象中。 Angular 提供了您可以使用的资源服务。您可以在这些资源上定义自己的方法,因此这是一个很好的起点。
c) 你指的是GUI部分还是业务逻辑? Angular 会为您处理 GUI。只需实现从列表中删除事务的函数,Angular 就会为您重新渲染它。
d) 同样,这取决于您是否实现或使用库。 Angular 主要是一个 GUI 框架,对模型/持久层几乎没有什么意见。
对于你的最后一个问题;您可以将大部分逻辑放在服务中。您的 Angular 控制器将被注入它们所需的服务,并通过范围向视图公开功能。您应该尽可能避免将内容添加到根范围,因为它们本质上在您的模板中是全局的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)