【问题标题】:Isolate Scope 2 way bindings doesn't update the value of parent scope隔离作用域 2 方式绑定不会更新父作用域的值
【发布时间】:2015-09-05 08:53:18
【问题描述】:

您好,我有指令 foo 我在哪个控制器中

$scope.valid = false

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

<bar valid="valid">

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

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

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

【问题讨论】:

    标签: javascript angularjs isolate-scope


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 我想你误会了。我的意思是使用 bindToController: true 绑定到控制器。无论如何,这不会引起问题。我通过删除 bindToController 并使用范围来检查它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 2018-02-22
    • 2015-02-17
    • 1970-01-01
    相关资源
    最近更新 更多