AngularJS $范围变量

时间:2015-11-19 07:50:09

标签: angularjs angularjs-scope

我已经开始学习AngularJS 1.4.7并且我无法完全理解$ scope变量。 这是一个Angular控制器内的变量"喜欢" PHP类中的公共变量?

例如:

我在function1(), function2()HomeCtrl.js变量中有2个函数$scope.img = null;,在模板文件中有2 ng-click事件来调用这些函数。

ng-cick事件中,我致电function1并将$scope.url的值设为somethig

此后我调用function2console.log($.scope.url)它返回null。 Null是此变量的初始化值。

我只是在$scope.url中设置function1的值,并且在{beller}的function2内部为空,为什么?

我不知道为什么会发生这种情况。

2 个答案:

答案 0 :(得分:1)

scopecontroller的实例。

当您声明controller时,scope将在那里可用。

您可以通过controller

访问范围

这就是为什么当您在controller中更改地点时,更改将反映在scope的所有位置。

答案 1 :(得分:0)

你真的打电话给$.scope.url吗?那就是问题,应该是$scope.url," $"之间没有点。和"范围"。

范围变量与变量可访问性概念(public / private / protected / etc)无关。

他们是那些魔法"变量,可以使用表达式放在模板中,它允许Angular中的数据绑定,即你的html与#34; magic"范围变量,当你只是在你的控制器中更改它们的值时,会通过angular自动更新,就像在ng-click的回调函数中一样。 (实际上它并不那么容易,在这里我们来看看$和$ digest,但是如果你没有编写自定义指令,而不是混合,例如,使用Angular代码的jQuery代码,你可能不会考虑它现在)。

双面数据绑定,自动html更新 - 这是$ scope和$ scope变量的主要内容。

范围不是和控制器的实例,它们是不同的Angular实体。