下面是表单下拉列表的非常简单的设置。然而,on-change事件拒绝开火..。除非它被更改为ng-change。
这让我被困了大约一个小时,因为我们在站点的其他地方使用了相同的设置(即模型属性/列表/on-change指令)。
我想知道on-change和ng-change之间有什么区别,为什么其中一种在这种情况下有效,而另一种则不行?
视图
<select id="grArchive"
name="grArchive"
class="form-control"
options="userList"
ng-model="selectedUser"
ng-options="user as user.name for user in userList"
on-change="showSelected()">
</select> 控制器
scope.selectedUser = {};
scope.userList = [];
scope.showSelected = function(){
scope.columns = addColumns;
};
var loadUserList = function(data){
scope.userList = $.map(data, function(item){
return {id: item.id, name: item.firstName + ' ' + item.lastName};
});
}以防万一:用户按预期下拉填充(屏幕截图如下)

发布于 2016-07-14 16:02:40
ng-变化
ng-change是角核心API提供的指令,它在$viewValue of ng-model变量发生任何更改时在内部注册要调用的表达式(这里是代码);为它分配一个表达式,如myFunction()。提供的表达式将在基础控制器作用域中进行计算。调用表达式后,它运行一个摘要周期,以确保在视图上更新绑定。除了ng-change之外,还有其他用于事件的指令,如ng-focus、ng-mousedown、ng-submit、ng-blur等。这里是此类指令的列表。
不断变化
它是在输入元素值的JavaScript上调用change函数的一种方法。它将搜索在上下文中全局可用的function (显然它不会调用在角控制器中注册的函数)并对其进行评估。
https://stackoverflow.com/questions/38378972
复制相似问题