角度数据绑定返回键而不是值

时间:2016-11-19 14:24:59

标签: javascript angularjs json angular-template

我正在处理来自网络服务器的托管字段,如下所示:

{
   "fields":{
      "relationshipStatus":[
         {
            "fieldId":4,
            "name":"Committed"
         },
         {
            "fieldId":2,
            "name":"Dating"
         },
         {
            "fieldId":6,
            "name":"Engaged"
         },
         {
            "fieldId":3,
            "name":"Exclusive"
         },
         {
            "fieldId":7,
            "name":"Married"
         },
         {
            "fieldId":8,
            "name":"Open Relationship"
         },
         {
            "fieldId":5,
            "name":"Partnered"
         },
         {
            "fieldId":1,
            "name":"Single"
         }
      ]
   }
}

我有一个下拉选择器,允许我按字段名称过滤配置文件:

<select ng-model='$storage.filter.relationshipStatus' 
  ng-options="option.fieldId as option.name for option in managedFields.relationshipStatus" 
  ng-change="changeFilter('relationshipStatus')">
  <option value="">Any Relationship Status</option>

在我查看配置文件的另一个模板中,当我尝试使用{{profile.relationshipStatus}}获取关系状态时,如果他们将其配置文件填写为已提交,则返回数字4.我了解这与Committed相关,但我不确定如何让个人资料的个人资料模板显示已提交,而不是4.我还尝试使用{{profile.relationshipStatus.value}}我对此很新,所以我&#39;我不确定我是否可以调整这个来拉取字符串而不是数字?或者我将不得不写一些javascript来处理数字并输出实际的字符串,例如。 {{profile.relationshipStatus | relationshipToString}}我尝试在多个示例中查找数据绑定,但我不确定我是否找到了适用的示例,因为我已经很新了。

有人可以指出我正确的方向吗?谢谢

1 个答案:

答案 0 :(得分:0)

我认为下面的行是错误的,你试图选择fieldId并假装它作为option.name

ng-options="option.fieldId as option.name for option in managedFields.relationshipStatus"

//try this
ng-options="option.name as option.name for option in managedFields.relationshipStatus"

查看详情 https://docs.angularjs.org/api/ng/directive/ngOptions