隔离作用域2的方式绑定不会更新父作用域的值

Isolate Scope 2 way bindings doesn't update the value of parent scope

本文关键字:作用域 更新 绑定 方式 隔离      更新时间:2023-09-26

Hello,我有一个指令foo,在这个控制器中我有

$scope.valid = false

我在模板中通过隔离作用域将这个变量传递到另一个指令中

<bar valid="valid">

和在模板

中使用ng-if
<span ng-if="valid">Validated<span>

现在当我更新有效在我的子指令。它显示验证在我的模板中。但是变量没有在我的父指令控制器中更新。为什么会发生这种情况?

注意:在我的子控制器中,我将变量附加到控制器而不是作用域。这就是它表现成这样的原因吗?

事实上,如果在子指令控制器代码中,你写

function MyController($scope) {
    this.valid = $scope.valid;
}

则设置控制器对象的valid属性不会改变$scope.valid,因为您执行了valid的副本。

相反,继续使用$scope将有关更改的信息传递回父节点。