在控制器中初始化ng-model时,不会触发Angularjs选择ng-change

Rod*_*mez 3 angularjs angularjs-ng-change

我有这样的选择

<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>
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我有这个

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!!");
}
Run Code Online (Sandbox Code Playgroud)

我的选择是按预期加载fides但是当我尝试使用$ rootScope的值设置我的选择值时,ng-change函数不会触发loadInfo()但是当我在视图中选择它时它工作正常.

我有什么不对的想法吗?

提前谢谢你的帮助:)

Ter*_*rry 6

从以下文档ngChange:

在用户更改输入时评估给定的表达式.表达式是立即计算的,与JavaScript onchange事件不同,后者仅在更改结束时触发(通常,当用户离开表单元素或按下返回键时).当值更改来自模型时,不会计算表达式.

如果要以编程方式更改模型,则需要手动调用事件处理程序:

if (typeof $rootScope.selected_id !== 'undefined') {
  $scope.id_select = $rootScope.selected_id;
  $scope.loadInfo();
}
Run Code Online (Sandbox Code Playgroud)