1

我正在使用 ngView 按需加载内容。我不太明白的是何时创建每个视图的控制器?

我为我的一些视图分配了相同的控制器,它们似乎在它们之间共享数据。但我的印象是每次显示特定视图时都会重新创建控制器。

那么它是怎样工作的?

4

2 回答 2

0

当您在 JavaScript 中使用 定义控制器时.controller(),您定义了一个类,而不是创建对象的实例。

Colin Moock 是这样定义区别的:一个对象就像一架飞机,它可以执行类似的动作fly()并具有类似的属性maxPassengers。一个班级就像是如何建造那架飞机的蓝图,你可以从中制造出无限的飞机。惊人!如果您愿意,您可以在这里观看 Colin Moock 的完整解释:http: //tv.adobe.com/watch/colin-moocks-lost-actionscript-weekend/object-oriented-programming-overview/

每次加载视图时,都会创建控制器类的新实例。大多数 Angular.js 控制器都有一个大写的名称,比如DashboardContacts因为它们描述了一个类。

因此,您的问题的答案是每次加载视图时都会创建一个新的控制器实例。

于 2013-07-15T22:09:44.797 回答
0

事实证明,当为您的模型使用工厂并将模型注入控制器时,您可以在更改视图时保持状态。

我为我的一个控制器使用了工厂,并在另一个控制器中使用了“new FooModel()”,因此使用这两个控制器的视图有两种不同的行为。

于 2013-07-16T16:28:18.397 回答