0
我希望观察表格是否为原始格式。我的HTML看起来像这样:AngularJS:在编译表格后开始观察表格变化
<div ng-if="ObservationCtrl.showHeader">
<form class="form-horizontal" name="ObservationCtrl.observationForm" role="form" ng-if="!ObservationCtrl.doingResolve">
{{ObservationCtrl.observationForm.$pristine}}
<!-- SOME HTML -->
</form>
</div>
在我的控制,我有以下代码:
console.log(self.observationForm);
$timeout(function(){
$scope.$watch('self.observationForm', function() {
if(self.observationForm) {
console.log('form is valid? ', self.observationForm.$pristine);
} else {
console.log('form is not defined');
}
});
},2000);
这将记录undefined
,但不会把戏,因为它开始2秒后看的形式,当它已经存在。但是,如果我将等待时间减少到等于100,甚至是0,那么我会收到form is not defined
消息,并且当我更改表单中的某些内容时,无法识别更改。根据一些SO帖子,那是因为我开始在之前观看表格它被编译。
我希望在编译后开始观看表格。依靠一些预定义的超时是棘手的,但我还没有找到任何其他方式来做到这一点。我也试过$evalAsync
,但没有运气。
太棒了!只是一个小错字 - “$ pristine”后面不应该有一个大括号。非常感谢 – Zbynek