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

met*_*bed 1 javascript json angularjs ng-options

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

$scope.props =
{
    'prop1': { 'att': 10 },
    'prop2': { 'att': 20 },
    ...
    'propN': { 'att': 42 }
};
Run Code Online (Sandbox Code Playgroud)

我将此对象绑定到select使用ng-options:

<select ng-options="propName for (propName,propVal) in props"
        ng-model="selectedProp"></select>
Run Code Online (Sandbox Code Playgroud)

选项prop1,prop2等在下拉框中显示出来.当我选择其中一个选项时,propVal存储在selectedProp.

但是,我需要存储实际的属性名称,而不是它的值.我可以完全忽略该值 - 我需要的只是选定的属性名称字符串,例如"prop2".

这在AngularJS中是否可行?

Waw*_*awy 6

这对你有用吗?

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

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