请参阅以下plnkr:http://plnkr.co/edit/KZwIBX?p=preview
第一个标准选择按预期工作(至少就我预期/预期的那样),这意味着在更新模型后调用ng-change。但是当我创建一个具有隔离范围的指令时,似乎在我的模型更新之前调用了ng-change。显然我有一些误解。
答案 0 :(得分:9)
plnkr中示例的问题在于您通过使用更改:'&'将更改函数传递给隔离范围作为与父范围的绑定。 通过使用&该函数将作为父项上下文中的表达式进行计算,并在模型更改之前进行评估(如果没有将模型作为参数绑定)
可以通过两种方式更改示例以便工作:
您可以在指令中使用更改定义隔离范围:'='定义
您可以按原样使用它,但使用参数调用父引用函数。 对于第二个例子,这是一个很好的解释: http://www.thinkster.io/pick/oEo8ZAXv27/angularjs-isolate-scope