AngularJS - 为什么在模型更新之前调用ng-change?

时间:2013-11-20 16:40:23

标签: angularjs angularjs-ng-change

请参阅以下plnkr:http://plnkr.co/edit/KZwIBX?p=preview

第一个标准选择按预期工作(至少就我预期/预期的那样),这意味着在更新模型后调用ng-change。但是当我创建一个具有隔离范围的指令时,似乎在我的模型更新之前调用了ng-change。显然我有一些误解。

情况与AngularJS scope updated after ng-change非常相似

1 个答案:

答案 0 :(得分:9)

plnkr中示例的问题在于您通过使用更改:'&'将更改函数传递给隔离范围作为与父范围的绑定。 通过使用&该函数将作为父项上下文中的表达式进行计算,并在模型更改之前进行评估(如果没有将模型作为参数绑定)

可以通过两种方式更改示例以便工作:

  1. 您可以在指令中使用更改定义隔离范围:'='定义

  2. 您可以按原样使用它,但使用参数调用父引用函数。 对于第二个例子,这是一个很好的解释: http://www.thinkster.io/pick/oEo8ZAXv27/angularjs-isolate-scope