angularJS中ngrepeat的怪异行为

angularJS中ngrepeat的怪异行为,angularjs,Angularjs,我对ng repeat有意见,它用最新的值替换所有值 例如,我在文本框中添加一个值,然后在ng repeat div中添加该值,但它会用最后输入的值替换所有值 这是JSFIDLE 发生这种情况是因为您只有一个statusObj,并且每次有人单击Add New Status(添加新状态)按钮时,您都在修改它。删除您现在拥有的statusObj,并让AddNewStatus方法每次创建一个新的statusObj: var xyzApi=xyzApi | |{ sayHello:函数{ 返回那里\n

我对ng repeat有意见,它用最新的值替换所有值

例如,我在文本框中添加一个值,然后在ng repeat div中添加该值,但它会用最后输入的值替换所有值

这是JSFIDLE


发生这种情况是因为您只有一个statusObj,并且每次有人单击Add New Status(添加新状态)按钮时,您都在修改它。删除您现在拥有的statusObj,并让AddNewStatus方法每次创建一个新的statusObj:

var xyzApi=xyzApi | |{ sayHello:函数{ 返回那里\n; } }; 角度。模块'demoApp',[] .controller'MainController',MainController .provider'xyzApi',函数xyzaprovider{ 这是。$get=函数{ var xyzApiFactory={ otherFunction:函数{ //$log.log‘调用了其他函数’; 返回'other function\n'; } }; //console.logxyzapi工厂,xyzApi; angular.mergexyzapi工厂,xyzApi; 返回Xyzapi工厂; }; }; 函数主控制器XYZAPI{ var vm=这个; vm.test=; vm.listOfStatus=[]; vm.showStatusError=false; vm.statusText=; vm.sayHello=函数{ vm.test+=xyzApi.sayHello+xyzApi.otherFunction; } vm.AddNewStatus=函数状态文本{ 如果statusText.length<1{ vm.showStatusError=true; 回来 }否则{ vm.showStatusError=false; } var statusObj={ StatusComment:statusText, scId:0, 时间戳:新日期, JobNum:0, IsNew:0, }; vm.listOfStatus.pushstatusObj; vm.statusText=; }; vm.RemoveStatus=函数索引{ vm.listOfStatus.index,1; } } 打声招呼!! 地位 请输入新状态