【问题标题】:Select only the property names of a JSON object with ng-options使用 ng-options 仅选择 JSON 对象的属性名称
【发布时间】:2014-08-26 07:58:47
【问题描述】:

我的作用域中有一个 JSON 对象,如下所示:

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

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

<select ng-options="propName for (propName,propVal) in props"
        ng-model="selectedProp"></select>

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

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

这在 AngularJS 中可行吗?

【问题讨论】:

    标签: javascript json angularjs ng-options


    【解决方案1】:

    这对你有用吗?

    <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。因此,您希望在模型中存储所选对象的属性名称(键)并将其显示为相同的属性名称。

    【讨论】:

      【解决方案2】:

      这样试试

      <select ng-model="selectedProp" 
      
           ng-options="myProp.propName as myProp.propName for myProp in props">
      

      【讨论】:

      • myProp 没有propName。我需要密钥“prop1”。
      猜你喜欢
      • 2015-01-27
      • 2016-09-09
      • 1970-01-01
      • 1970-01-01
      • 2015-06-15
      • 2017-12-31
      • 1970-01-01
      • 2020-02-02
      • 2014-02-19
      相关资源
      最近更新 更多