在ng-model被设置为select>之前,Ng-change执行

ng-change executing before ng-model is set for a <select>

本文关键字:之前 Ng-change 执行 ng-model 设置 select      更新时间:2023-09-26

我有以下html和js

 <select ng-change="setBillGroup()" ng-model="bill.groupId" class="span8" ng-options="d.id as d.name for d in groups"></select>

,对应的js是

   $scope.bill=[];
   $scope.setBillGroup = function() {
   var $groupId = $scope.bill.groupId; .... }

这里是$作用域。组JSON

 $scope.groups= [
{id:'1',users:[1,2,3,4],name:'SLC '},
{id:'2',users:[1,2],name:'Denver'},
{id:'3',users:[2,3],name:'Ski Club'},
{id:'4',users:[2,5],name:'Family'},
{id:'5',users:[1,2,3,5],name:'whatever'}
];

每次我从选择表单标签元素中选择一些东西时,我都会得到以下错误。

TypeError: Cannot read property 'groupId' of null
at Object.$scope.setBillGroup

在ng-model设置之前,ng-change函数似乎已经在运行。是否有办法使ng-change函数setBillGroup()等待ng-model在用户选择项目后被设置?我确实检查了$scope的值。{{bill}}值正确设置为{"groupId":"1"}

谢谢。

这是我的一个打字错误。与我在问题$scope中发布的内容相反。Bill被初始化为

美元范围。比尔=零;

抛出错误。当我正确初始化它时,错误消失了美元的范围。比尔= [];

感谢@jaux帮我找到了问题