我的选择如此
<select ng-model="id_select" ng-options="fide.id as fide.name for fide in fides" ng-change="loadInfo()">
<option value="" selected disabled>Seleccionar</option>
</select>
在我的控制器中我有这个
RestService.getFides().then(function(fides){
$scope.id_select = fides;
if(typeof $rootScope.selected_id !== 'undefined')
{
$scope.id_select = $rootScope.selected_id
}
});
$scope.loadInfo = function() {
alert("triggered!!");
}
我的选择是按预期加载fides但是当我尝试使用$ rootScope设置我的选择值时,ng-change函数不会触发ng-change函数,但是当我在视图中选择它时,它可以正常工作。 / p>
关于我做错什么的任何想法?
提前感谢大家的帮助:)
答案 0 :(得分:6)
在用户更改输入时评估给定表达式。表达式是立即计算的,与JavaScript onchange事件不同,后者仅在更改结束时触发(通常,当用户离开表单元素或按下返回键时)。 当值更改来自模型时,不会评估表达式。
如果要以编程方式更改模型,则需要手动调用事件处理程序:
if (typeof $rootScope.selected_id !== 'undefined') {
$scope.id_select = $rootScope.selected_id;
$scope.loadInfo();
}