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

标签 angularjs angularjs-ng-change

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

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

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

最佳答案

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

可以有两种方法来更改示例以使其正常工作:

  • 您可以通过更改在指令中定义您的隔离范围:'=' 定义
  • 您可以按原样使用它,但使用参数调用父引用函数。
    对于第二个示例,这是一个很好的解释:
    http://www.thinkster.io/pick/oEo8ZAXv27/angularjs-isolate-scope
  • 关于AngularJS - 为什么在模型更新之前调用 ng-change?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20101697/

    相关文章:

    angularjs - 如何从AngularJS中选择的ng-change调用服务方法?

    javascript - Angular - 更改ng-model时不会触发ng-change

    javascript - 带有外部参数 Angular 的 Ajax

    angularjs - ng-change 在文本框退格按钮按下时不起作用

    angularjs - 当模型以编程方式更改时调用 ngChange

    javascript - 带有文件管理器的 AngularJS 打破了表单域的范围?

    javascript - ng-change 对 Controller 的输入进行更改,因为语法不起作用

    css - ng-grid 重叠表格,需要正确设置高度

    angularjs - 升级到 Angular 2 后 Protractor 测试停止工作

    javascript - 使用 Node.js 和 Express.js 以及 AngularJs 和 nodemailer 发送电子邮件不发送邮件