如果未绑定在html中,angularjs会监视/跟踪id属性的更改吗?
JS
$scope = { firstname: "test1", lastname: "test2", id: 10};
HTML
<input type="text" ng-model="firstname" />
<input type="text" ng-model="lastname" />
答案 0 :(得分:0)
它确实关注双向数据绑定。但是,您应该始终使用.
。这是因为原型继承。您可能使用的<form>
标记引入了一个新的子范围,在这种情况下将覆盖firstname / lastname。
不要使用
<input ng-model="firstname"> <!-- NO -->
但请使用
<input ng-model="form.firstname"> <!-- YES -->
在您的控制器中,使用$scope.form = { firstname: '...', lastname: '...', id: '...' };
。 Angular会留意变化。
form.id
您可以在控制器中注意以下id
属性的更改:
$scope.$watch('form.id', function(newVal, oldVal) {
// do something with changed value
});
答案 1 :(得分:0)
angularjs是否会监视/跟踪id属性的更改?
不自动。 AFAIK,在编译阶段创建监视,当angular通过DOM解析时,可以了解它需要跟踪的内容。例如,如果在模块中定义控制器,但从不在HTML中使用ng-controller
,则永远不会创建控制器的实例。你可以看到这是一件好事。
如果您想为id
手动设置监视,请使用$scope.$watch
来执行此操作。