0

UI bootstrap 演示了一个使用按钮和无序列表的下拉选择。这一切都很好而且很花哨,但是,我试图获得与 HTML 中的选择标签相同的功能。选择一个选项并更改模型的值然后触发 ng-change 函数等功能。

我认为当附加到输入的 ngModel 更改时会触发 ngChange 事件,但事实并非如此。我已经附上了我的问题的 plunker,它演示了更改user.group's的列表项的选择ng-model,它应该调用ng-change="alert('blah')",但它没有。我是否缺少 ngChange 的某种语义?

http://plnkr.co/edit/oZo7xGEVKvB0ntwiNFMp?p=info

4

2 回答 2

4

正如官方文档所说的ngChange指令:

当用户更改输入时评估给定的表达式

https://docs.angularjs.org/api/ng/directive/ngChange

因此该指令与模型更改无关,它处理用户与表单元素的交互。

更多来自角度文档:

它不会被评估:

  • 如果从 $parsers 转换管道返回的值没有改变
  • 如果输入继续无效,因为模型将保持为空
  • 如果模型以编程方式更改而不是通过更改输入值
于 2014-10-06T19:32:25.990 回答
2

我看到您在按钮标签上使用 ng-model 指令。这是行不通的,因为您只能在 html 表单输入元素上使用 ng-model。您的按钮不是输入类型。检查 angularjs 文档:https ://docs.angularjs.org/api/ng/directive/ngModel

ngModel 指令使用 NgModelController 将inputselecttextarea(或自定义表单控件)绑定到范围上的属性,该属性由该指令创建和公开。

于 2014-10-06T19:22:44.557 回答