仅使用ng-options选择JSON对象的属性名称

时间:2014-08-26 07:58:47

标签: javascript json angularjs ng-options

我的范围内有一个JSON对象,如下所示:

$scope.props =
{
    'prop1': { 'att': 10 },
    'prop2': { 'att': 20 },
    ...
    'propN': { 'att': 42 }
};

我使用select

将此对象绑定到ng-options
<select ng-options="propName for (propName,propVal) in props"
        ng-model="selectedProp"></select>

选项prop1prop2等会显示在下拉框中。当我选择其中一个选项时,propVal会存储在selectedProp

但是,我需要存储实际属性名称,而不是其值。我完全可以忽略这个值 - 我只需要选择的属性名称字符串,例如&#34; prop2&#34;。

这在AngularJS中是否可行?

2 个答案:

答案 0 :(得分:6)

这对你有用吗?

<select ng-options="key as key for (key , value) in props"
        ng-model="selectedProp"></select>

您可以在angular docs中找到更多信息,但基本上key as key指的是value_to_store as value_to_display。因此,您希望在模型中存储所选对象的属性名称(键),并将其显示为相同的属性名称。

答案 1 :(得分:0)

试试这个

<select ng-model="selectedProp" 

     ng-options="myProp.propName as myProp.propName for myProp in props">