变化和变化之间的差异

时间:2016-07-14 16:00:31

标签: javascript angularjs events data-binding angularjs-directive

以下是表单下拉列表的非常简单的设置。但是,on-change事件拒绝触发......除非它已更改为ng-change

这让我停留了大约一个小时,因为我们在网站的其他地方使用相同的设置(即模型属性/ list / on-change指令)。

我想知道on-changeng-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};
        });
}

以防万一:用户下拉按预期填充(下面的屏幕截图)

enter image description here

1 个答案:

答案 0 :(得分:2)

NG-变化

ng-change是由Angular核心API提供的指令,当$viewValue ng-model变量(here是代码)&amp; myFunction()中发生任何变化时,它会在内部注册表达式。那么你可以在其中加ng-change个表达式。提供的表达式将在底层控制器范围内进行评估。调用表达式后,它会运行一个摘要周期,以确保在视图上更新绑定。与智慧ng-focus一样,您可以找到许多用于ng-mousedownng-submitng-blurchange等事件的指令。Here您可以找到列表

平变化

它是一种在输入元素值function上调用javascript函数的方法。它将搜索在上下文中全局可用的 digit = num % 10; (显然它不会调用在角度控制器中注册的函数)&amp;评估它。