0

你好我有指令 foo 我有哪个控制器

$scope.valid = false

我通过模板中的隔离范围将这个变量传递到另一个指令中

<bar valid="valid">

并在我的模板中使用 ng-if

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

现在,当我在我的子指令中更新有效时。它显示在我的模板中已验证。但是该变量没有在我的父指令控制器中更新。为什么会这样?

4

1 回答 1

0

注意:在我的子控制器中,我将变量附加到控制器而不是范围。这就是它表现得这样的原因。

实际上,如果在您的子指令控制器代码中,您编写

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

然后设置控制器对象的valid属性不会更改$scope.valid,因为您执行了valid.

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

于 2015-09-05T09:08:39.853 回答