2016-03-05 115 views
0

我试图更新classRollNum价值,但在控制台上其壁上的反射打印​​时。我在这里做什么错>如何更新范围值

function classRollNumCtrl($scope, studentList, Restangular) { 
     var vm = this; 
     vm.studentList = studentList.plain(); 

     vm.updateRollNum = function() { 
      for (var x in vm.studentList) { 
       console.log("x --> " + x) 
       vm.studentList.classRollNum= x+1; // UPDATEING VALUE 
      } 

      console.log("vm.studentList --> " + JSON.stringify(vm.studentList)); 
     } 
    } 

}()); 

我的vm.studentList看起来像这样。

vm.studentList = [ 
       {"studentName":"Abhinav Chandel","classRollNum":null}, 
       {"studentName":"Achin Agarwal","classRollNum":null}, 
       {"studentName":"Amartya Khan","classRollNum":null} 
       ] 
+0

困惑于自己在做什么。为什么不在控制器中声明'vm.studentList = [...'? –

+0

@ LJ.Wizard:上面的更正。 vm.studentList是我对studentList的决心。我很惊讶为什么vm.studentList.classNumRoll = x + 1;是不是更新值 – fresher

+0

因为'classNumRoll'!='classRollNum' – dex

回答

0

您应该使用

x.classRollNum = x.classRollNum +1; 

,或者通过

vm.studentList.classNumRoll = x+1; 

检查空

x.classRollNum = x.classRollNum ? x.classRollNum +1 : 1; 

,而不是同样错字。在列表中有classRollNum但使用classNumRollstudentList是一个数组,所以你不能使用studentList.classRollNum可以使用在for循环像x.classRollNumstudentList[0].classRollNum