Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 角度:从对象数组属性返回数组_Arrays_Angularjs - Fatal编程技术网

Arrays 角度:从对象数组属性返回数组

Arrays 角度:从对象数组属性返回数组,arrays,angularjs,Arrays,Angularjs,我在加载表单时传入了一个“user”对象,我可以使用它直接填充编辑用户表单。因此: $scope.userData = getUserData(); <input id="uid" value="{{userData.uid}}"/> <input id="name" value="{{userData.name}}"/> 我有一个自定义控件,希望角色作为标题的平面数组 所以,这就是我希望制作的: <sys-multi id="roles" options="[

我在加载表单时传入了一个“user”对象,我可以使用它直接填充编辑用户表单。因此:

$scope.userData = getUserData();

<input id="uid" value="{{userData.uid}}"/>
<input id="name" value="{{userData.name}}"/>
我有一个自定义控件,希望角色作为标题的平面数组

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

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

这里的诀窍是,我希望在模板中实现这一点,所以没有函数,所以我的控制器。i、 e.类似的情况(如果有效):


我一直在玩grep,但angular不喜欢它的{{}中的grep。

如何向userData对象添加一个getter(或函数):

$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>


您为什么不想为这台机器安装一个控制器功能?也许是在对象上创建另一个具有平面数组值的键的东西?这很容易做到。您可能应该考虑使用一个我希望将数组直接传递到模板中的方法。看起来我必须在控制器中抓取它并对其进行按摩。是的,看起来我将在控制器中进行按摩。不过我只是使用了一个方法:var roleNames=$.map(userData.roles,function(role){return role.id;});
$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>