Javascript 使用Json和Angular生成选择选项

Javascript 使用Json和Angular生成选择选项,javascript,json,angularjs,select,options,Javascript,Json,Angularjs,Select,Options,这个问题一直困扰着我。我需要使用Angular从Json对象生成select标记的选项。代码如下所示: <select id="cargo" ng-model="cargo.values.cargoList"> <option ng-repeat="(class, name, weight) in cargo.values.cargolist ng-click="orderList()"> </select> 和实际的Jso

这个问题一直困扰着我。我需要使用Angular从Json对象生成select标记的选项。代码如下所示:

<select id="cargo" ng-model="cargo.values.cargoList">
    <option ng-repeat="(class, name, weight) in cargo.values.cargolist
            ng-click="orderList()"> 
</select>
和实际的Json对象:

[{"cargo":{"forkliftNeeded":true,"cargoList":[{"class":"A","name":"Book","weight":"1"}]}}]
其想法是根据货物清单中的项目数量生成适当数量的选项标签。每个选项都需要按顺序显示,还需要显示每个项目的类别、名称和权重(对于记录,我将forkliftNeeded项目委托给一个复选框)

为了让事情变得更复杂,我还想让点击一个给定的选项将该选项移动到列表的顶部。不仅是选项,它还必须实际更改Json对象的顺序

正如你所能想象的,我在角度方面还不够熟练,无法独自完成这项工作。如果你能给我任何帮助,我将不胜感激

编辑:

我设法取得了一些进展。事实证明,您可以通过以下方式做得很好:

<select id="cargo">
    <option ng-repeat="item in cargo.values.cargolist"
            ng-click="orderList()">
        {{ item.class + " " + item.name + " " + item.weight }}
    </option>
</select>

{{item.class+“”+item.name+“”+item.weight}}

现在我只需要知道如何执行orderList()函数。有没有办法在单击时获取订单标签的索引?

您要查找的是
ngOptions
。将该参数添加到
标记中将根据您的数组自动填充

<select id="cargo" 
    ng-model="cargo.values.cargoList" 
    ng-options="option.class + ' ' + option.name + ' ' + option.weight as option.name for option in cargo.values.cargoList">
</select>

有关
ngOptions
的更多信息,请点击此处:


这些js函数是包装在角度控制器中还是什么?另外,您可以在
cargolist
cargolist
之间切换。我查看了一下。不幸的是,它不能满足我的需要(无论如何,据我所知)。我仍然需要修改这些选项,以便单击其中一个将它们移动到列表的顶部。
<select id="cargo" 
    ng-model="cargo.values.cargoList" 
    ng-options="option.class + ' ' + option.name + ' ' + option.weight as option.name for option in cargo.values.cargoList">
</select>