AngularJS - ngView范围?

时间:2013-07-15 21:47:11

标签: angularjs

我正在使用ngView来按需加载内容。 当是每个创建的视图的控制器时,

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

那它是如何运作的?

2 个答案:

答案 0 :(得分:0)

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

Colin Moock以这种方式定义差异: Object 就像一架飞机,它可以执行fly()之类的操作,并具有maxPassengers等属性。 Class 就像是如何建造这架飞机的蓝图,你可以从中制造出无限的飞机。惊人!如果你愿意,可以在这里观看Colin Moock的全部解释:http://tv.adobe.com/watch/colin-moocks-lost-actionscript-weekend/object-oriented-programming-overview/

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

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

答案 1 :(得分:0)

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

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