指令范围的双向绑定不符合预期

时间:2014-06-10 10:24:51

标签: javascript angularjs angularjs-directive angularjs-scope

在我的angularJS应用程序中,我使用了一个指令。该指令需要知道应用程序范围中变量的值。因为应用范围变量需要在指令更新时更改,并且当应用范围变量更改时指令变量需要更改,我使用双向绑定。 在我的指令中:

scope: {
    "selectedObject": "=selectedobject"
}

在我的HTML中:

<dirname selectedobject="foo"/>

并在我的控制器中:

$scope.foo = "somevalue";
//$scope.$apply(); Adding this, I get a '$digest already in progress' error

现在当我尝试在我的指令中读取selectedObject的值时,它以null而不是“somevalue”开头。但是,指令范围中所做的更改会很好地传播到应用程序范围。我怎样才能确保它的相反方式呢?那,如果我的控制器改变了foo的值,这个改变会传播到指令范围吗?

1 个答案:

答案 0 :(得分:0)

请阅读以下文章,因为我相信您陷入了常见的陷阱,本文将帮助您了解您的问题

http://nathanleclaire.com/blog/2014/04/19/5-angularjs-antipatterns-and-pitfalls/