4

我正试图围绕 AngularJS。我很喜欢它,但一个核心概念似乎在逃避我——模型在哪里?

例如,如果我有一个显示多个交易列表的应用程序。一个列表向服务器查询匹配某些条件的分页事务集,另一个列表使用不同的条件,但可能有一些事务同时匹配两个条件并最终出现在两个列表中。现在:

  1. 出现在两个列表中的事务应该是两个范围内的相同对象,对吗?这不是数据绑定的一大亮点吗,所以一个地方的更新会反映在另一个地方?

  2. 事务可能具有抽象原始服务器 API 请求的复杂行为,需要对服务器进行后续查询以收集更多数据,观察自己的变化并将自己标记为脏,所有这些都去哪里了?

  3. 列表本身需要知道何时删除了事务,因此在一个列表中删除的同一事务将从另一个列表中消失。

  4. 我们可能想以某种客户端存储方式缓存事务?

那么问题又来了:这一切都去哪儿了?这一切都被塞进 $rootScope 并由控制器控制吗?委派服务?

这里的任何方向,无论多么模糊,都会受到赞赏。

4

1 回答 1

8

关于 Angular 的事情是它把模型留给你。您不必扩展某些内置对象以使其工作,它可以是您想要的任何对象。

a) 是的,但就像我说的,这取决于你。如果您愿意,您甚至可以使用 Backbones 模型实现。

b)可能在您的模型对象中。Angular 提供了一个你可以使用的资源服务。您可以在这些资源上定义自己的方法,这是一个很好的起点。

c)您是指 GUI 部分还是业务逻辑?Angular 为您处理 GUI。只需实现从列表中删除交易的功能,Angular 就会为您重新渲染它。

d) 同样,这取决于您来实现或使用库。Angular 主要是一个 GUI 框架,对您的模型/持久层几乎没有意见。

对于你的最后一个问题;您会将大部分逻辑放在服务中。您的 Angular 控制器将被注入他们需要的服务,并通过范围向视图公开功能。您应该尽可能避免将内容添加到根范围,因为它们在您的模板中基本上是全局的。

于 2013-02-23T22:02:09.430 回答