2016-11-19 83 views
0

我从网络服务器管理领域的工作,看起来是这样的:角数据绑定返回键,而不是值

{ 
    "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.我明白,关联到承诺,但我不确定如何获得个人配置文件模板显示承诺,而不是4.我也尝试使用{{profile.relationshipStatus.value}}我很新,所以我不知道我是否可以调整这个拉字符串而不是数字?或者我将不得不编写一些JavaScript来处理数字并输出实际的字符串,例如。 {{profile.relationshipStatus | relationshipToString}}我试过在多个示例上查找数据绑定,但我不确定我是否找到适用的任何示例,因为我很新。

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

+0

不正是你问清楚,但你想绑定选择像这样https://plnkr.co/edit/FZx15s5tOYh8esyhVp74?p=preview – Deep

+0

我试图显示名称,而不是fieldId。我可以使用{{profile.age}}为年龄提取个人资料信息,但是当我为关系这样的事情做时,我使用{{profile.relationshipStatus}}时,它会显示1代表单身,2代表约会等。 。我无法弄清楚如何让模板显示实际的名字,例如Single,Dating,Married。 – Robbie

+0

这个配置文件对象是什么?你可以通过这个对象在你的问题 – Deep

回答

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

+0

我正在使用它作为一个例子,以显示我可以得到实际的名字显示在下拉列表中,用于过滤器,这是行得通的,而不是显示1,2, 3.我遇到的问题是,当我为一个配置文件提取数据时,它显示的是数字,而不是单个,约会等,并且用户只会选择一个用于配置文件关系状态的设置。 – Robbie

+0

我试图在模板上的表格中显示关系状态,所以我使用​​{{profile.relationshipStatus}}它向我显示一个数字而不是等效字符串。我想知道我想弄清楚什么,你可以在表中拖出一个字段并显示字符串,类似于“option.fieldId as option.name”通过使用大括号显示实际字符串的方式,或者还有另一种方法来提取这些数据吗?用户可以随时更改它,所以我想要显示他们设置的内容,而不是1或2或3或4,但是只显示单个,约会等。 – Robbie

相关问题