我正在使用Angular 1,并且一直尝试使用ng-options指令显示下拉列表值,唯一可能对我有用的是:
<selectdata-ng-options="key as value for (key,value) in JSON.ObjectName.ListValues"></select>
由于生成JSON的方式,我需要迭代地显示任意数量的下拉菜单。因此,使上述语法工作的唯一方法是分配基于索引的值示例: index [0] 代替 ListValues 。像这样:
<select data-ng-options="key as value for (key,value) in JSON.ObjectName.index[0]">
我的JSON对象格式为:
{
"JSON": {
"ObjectName": {
"ItemValues": {
"0000": "County",
"0100": "City",
"0200": "State",
"0300": "Region",
"0400": "Country"
},
"AreaValues": {
"1111": "Metro",
"11AA": "Subway",
"2222": "Bus"
"22BB": "Transit"
}
}
}
}
我已经尝试将JSON分配给我的控制器中的范围对象并试图在我的页面上显示,但如果我要对任何数量的下拉菜单执行此操作,那么该方法将无法有效工作。
我唯一的另一个选择是使用JSON索引
这种方法有用吗? 我应该使用自定义指令吗? 有没有更好的方法来解决这个问题?
答案 0 :(得分:0)
一个选项是将对象直接附加到控制器而不是角度中的$ scope对象。
var this = ctrl;
ctrl.object //this should attach the object to he scope of the controller.
&#13;
<select id="idName" name="name" ng-model"ctrl.object.ListValues" data-ng-options="key as key for (key,value) in ctrl.objectName.ListValues"></select>
&#13;
您可以使用上述代码之类的内容访问每个选项,并将它们显示在html中的select元素中。
我是棱角分明的新手,所以如果这不正确我会道歉,但我以前用ngOptions做了类似的事情,这个解决方案似乎在你描述的场景中运作良好。