Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularjs ng init json变量位于ng repeat中_Angularjs - Fatal编程技术网

angularjs ng init json变量位于ng repeat中

angularjs ng init json变量位于ng repeat中,angularjs,Angularjs,我有一个通过json数组的ng repeat循环。数组是通过$http获取的。在这个循环中,我想向json对象添加一些变量,在比较旧值/更改值时,这些变量很方便 <li class="machine" ng-repeat="machine in machines> .... <input id="machine-host" ng-model="machine.host" ng-init="machine.editHostDisabled=true;machine.or

我有一个通过json数组的ng repeat循环。数组是通过$http获取的。在这个循环中,我想向json对象添加一些变量,在比较旧值/更改值时,这些变量很方便

<li class="machine" ng-repeat="machine in machines>
 ....
  <input id="machine-host" ng-model="machine.host"
  ng-init="machine.editHostDisabled=true;machine.originalHost=machine.host"/>
......
</li>

可以使用控制器中的一条
$scope.machines=response.data.map
语句执行
ng init
。没有必要把HTML和它混在一起。它可以正确地将模型与视图分开,并使代码更易于测试、调试和维护。在重复集作用域属性上添加一个指令,以包括editHostDisabled和machine.originalHost。对于初学者来说,这样你就不会污染你的机器对象2)如果这需要成为机器对象的一部分,那么在你重复之前在控制器中做它,因为现在你已经用它不需要的逻辑污染了ui。我有时对UI变量使用ng init,但它最终会在控制器中移动它们,以便我可以使用强引用修改它们。有时候,一致的干净逻辑比方便更重要。依我看,这不仅仅是杂乱无章。问题是你把业务逻辑放在了你的视野中。如果其他人出现并试图修复该控制器中的错误,他们不会看到这些属性被设置。这一定是一个错误吗?不,这只是一种次优的做法,因此是不可取的。