ngIf中的绑定元素不会更新绑定

我已经编写了angularjs指令。在该指令的模板中,我添加了一个ngIf指令,并在其中显示绑定到指令范围的输入。

<div ng-if="bool"><input ng-model="foo"></div>

经过大量的反复试验,我注意到ngIf指令导致更改输入文本时模型无法更新。如果我将其更改为ngShow,则一切正常。

我正在寻找这种差异的解释

我在这里创建了一个jsfiddle

回答:

之所以会这样,是因为ngIf创建了一个新的子作用域,因此,如果您想绑定到与其他输入相同的作用域,我们可以使用$

parent向下一级。单击此处了解有关范围继承的更多信息

  angular.module('testApp', [])

.directive('testDir', function () {

return {

restrict: 'A',

template: '<input ng-model="foo"><input ng-model="foo">' +

'<div ng-if="bool"><input ng-model="$parent.foo"></div>',

link: function (scope, elem, attrs) {

scope.foo = "bar";

scope.bool = true;

}

}

});

看看新的jsfiddle

以上是 ngIf中的绑定元素不会更新绑定 的全部内容, 来源链接: utcz.com/qa/406652.html

回到顶部