2015-09-05 144 views
0

你好,我有指令FOO,在其中控制器我有隔离范围2路绑定不更新父范围的值

$scope.valid = false 

我在我的模板通过这个变量另一个指令内通过孤立作用域

<bar valid="valid"> 

,并使用NG-如果我的模板中现在

<span ng-if="valid">Validated<span> 

当我更新以米有效y儿童指令。它显示在我的模板中验证。但该变量没有在我的父指令控制器中更新。为什么发生这种情况?

回答

0

注意:在我的子控制器中,我将变量附加到控制器而不是范围。这是这样做的原因吗?

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

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

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

取而代之,请继续使用$scope将有关更改的信息传回给父级。

+0

我想你误会了。我的意思是使用bindToController绑定到控制器:true。无论如何,这不是问题。我通过删除bindToController并使用范围来检查它。 –