【发布时间】:2017-06-06 17:55:29
【问题描述】:
我想了解 AngularJS 在观察工厂提供的对象更改时的某种行为。
根据我是在控制器中还是在 html 中读取工厂提供的对象的属性,会有不同的行为。
比较以下两种在视图中显示属性的方式:
app.controller("testController", function($scope, testFactory){
$scope.test_obj = testFactory.read();
$scope.test_prop = testFactory.read().prop;
});
<div>{{test_obj.prop}}</div>
<div>{{test_prop}}</div>
当 testFactory 中的属性发生变化时,只有在第一种情况下,当整个对象被声明为作用域并在视图中调用属性时,才会在视图中更新更改。当属性直接声明到作用域时,它不会在视图中自动更新。
可以在以下 jsfiddle 中观察到这种行为:https://jsfiddle.net/fb86p4fm/
这种行为的原因是什么?
【问题讨论】:
标签: javascript angularjs factory watch