Angular 使处理选项和选定的选项变得非常容易。你应该停止考虑索引或价值。使用 angular 您可以绑定整个对象,因此无需查找它。例如,您可以为您的选择执行以下操作:
<select ng-model='selectedUnit' ng-options="unit as unit.title for unit in food.unit"></select>
让我简单解释一下 ng-options 的表达式
最终的结果是,每当用户选择其中一个选项时,整个unit
对象都将存储在 ng-model 变量中(在本例中为selectedUnit
)。这使得将它绑定到其他地方变得非常容易。例如,您可以这样做:
<div class="unit">Unit is: {{ selectedUnit.title }}</div>
<div class="max">Max is: {{ selectedUnit.max }}</div>
<div class="grams">Grams is: {{ selectedUnit.gram }} </div>
在 Angular 中,如果您发现自己在处理索引或 id,然后通过 id 或索引查找内容,那么您通常做错了。使用 Angular 的最大优势之一是处理对象非常容易,您应该真正利用它。
例如,我经常看到新手在做类似的事情
<li ng-repeat="person in persons">{{person.name} <a ng-click="savePerson(person.id)">Save</a></li>
然后在他们的代码中,他们使用 id 从数组中查找人员:
$scope.savePerson = function(id){
var person = persons[id];
$http.post('/persons/'+id, person);
};
这种查找对于 Angular 几乎总是不必要的。您几乎总是可以立即通过该人:
<li ng-repeat="person in persons">{{person.name} <a ng-click="savePerson(person)">Save</a></li>
然后让点击处理程序带走这个人:
$scope.savePerson = function(person){
$http.post('/persons/'+person.id, person);
};
我知道我偏离了你原来的问题。但希望这是有道理的,可以帮助您使用“角度方式”更简单地编写东西
她是你的例子的 plunkr:
http://plnkr.co/edit/lEaLPBZNn0ombUe3GPa9?p=preview