ngIf
我正在使用从这个 SO answer获得的 Angular 1.0.3的临时指令。
// effectively
app.directive("ngIf", function () {
return function(scope, element, attrs) {
if (scope.$eval(attrs.ngIf)) {
} else {
element.replaceWith(' ');
}
}
}
});
该元素实际上已被删除。如果元素有ng-model
(可能还有其他指令)Angular 会抱怨。
<input ng-if="msg == 'foo'" ng-model=msg>
如果msg
不是foo
,我们得到
错误:没有控制器:ngModel
这很可能与评估 ngModel 时删除的元素有关。
有什么方法可以重写ngIf
指令以使错误不会发生?