【发布时间】:2016-04-09 11:57:55
【问题描述】:
在 Angular 中,我可能有一个如下所示的表单:
<ng-form>
<label>First Name</label>
<input type="text" ng-model="model.first_name">
<label>Last Name</label>
<input type="text" ng-model="model.last_name">
</ng-form>
在相应的控制器中,我可以轻松地观察该表单内容的变化,如下所示:
function($scope) {
$scope.model = {};
$scope.$watch('model', () => {
// Model has updated
}, true);
}
这是Angular example on JSFiddle。
我无法弄清楚如何在 Angular 中完成同样的事情。显然,我们不再有$scope、$rootScope。肯定有一种方法可以完成同样的事情吗?
【问题讨论】:
-
我认为您应该从您的表单中触发一个事件(例如旧的 ng-change),而不是从您的控制器中查看一些数据。
-
顺便说一句,删除范围的原因是摆脱那些观察者。我不认为在 angular 2 的某个地方隐藏了一块手表
-
如果我对您的理解正确,您是在建议我为 每个 表单输入添加一个
(ngModelChange)="onModelChange($event)"属性以完成此操作? -
表单实例本身不会发出某种更改事件吗?如果是这样,您如何访问它?
-
如果我确定要做什么,我会回答而不是评论。我还没有使用过 Angular 2.0,但从我读到的内容来看,手表已经完全消失,拥有一个基于事件的框架(而不是在每个摘要中执行的深度手表)
标签: angular