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