angular:从对象数组属性返回数组

时间:2015-03-12 19:09:41

标签: arrays angularjs

我有一个'用户'当我加载表单时传入的对象,我可以使用它来直接填充我的编辑用户表单。所以:

$scope.userData = getUserData();

<input id="uid" value="{{userData.uid}}"/>
<input id="name" value="{{userData.name}}"/>

我的数据如下:

userData = [{
    "empId":1,
    "name": "bob",
    "roles":[{
        "roleId":1,
        "title":"boss"
     },{
        "roleId":2,
        "title":"employee"
     }]
}]

我有一个自定义控件,希望将角色作为FLAT标题数组。

所以,这就是我希望制作的内容:

<sys-multi id="roles" options="['boss','employee']"></sys-multi>

这里的诀窍是我希望在模板中这样做,所以我的控制器没有功能。即这样的事情(如果有效):

<sys-multi id="roles" options="{{userData.roles.name.join(',')}}"></sys-multi>

我一直在玩grep,但棱角分明并不喜欢grep {{}}。

1 个答案:

答案 0 :(得分:0)

如何将getter(或函数)添加到userData对象:

$scope.userData = {
  "empId":1,
  "name": "bob",
  "roles":[{
     "roleId":1,
     "title":"boss"
  },{
     "roleId":2,
     "title":"employee"
  }],
  get roleNames() {
    return this.roles.map(function (role) {
      return role.title;
    });
  }
};

...然后以这种方式使用它:

<sys-multi id="roles" options="userData.roleNames"></sys-multi>

http://codepen.io/jlowcs/pen/emPKrB