javascript - 在 Angular 中匹配 2 个数组,匹配项作为复选框

标签 javascript arrays angularjs checkbox

我希望能够在 Angular 网页中管理用户 Angular 色。我有一个对象,其中列出了系统中的所有当前 Angular 色。

enter image description here

然后根据a User,我可以得到他当前在 Angular 色中的 Angular 色。

enter image description here

我可以将所有 Angular 色列为复选框,然后我希望根据 Angular 色选择用户的复选框。例如。如果他是记者和公众,我希望选中这些复选框。

  <label ng-repeat="m in UserDetails">
            <input type="checkbox" ng-model="UserDetails[m]" /> {{m}}
  </label>

UserDetails 中,我列出了所有 Angular 色。我想要选中复选框。

最佳答案

听起来你想要 ngChecked指示。也许是这样的:

<input type="checkbox" 
       ng-model="UserDetails[m]" 
       ng-checked="currentUsersRoles.indexOf(m) >= 0" /> {{ m }}

但是要在选中或取消选中该框时更新用户的 Angular 色,您可能需要稍微不同的结构。

假设您的 currentUser 没有 Angular 色数组,而是有一个 roles 属性,它在您的 Controller 中的值是一个像这样的对象:

$scope.currentUser.rolesObj = {
  "Public": true,
  "Reporter": false,
  "Partner": false,
  "LCSP": false,
  "Admin": false,
  "StrategicPursuit": false,
  "PA": false
};

然后创建您的复选框列表:

<label ng-repeat="(role, value) in currentUser.rolesObj">
  <input type="checkbox" ng-model="value" /> {{ role }}
</label>

这应该使您的用户 Angular 色与复选框保持同步。如果您对用户数据结构没有那么多的控制权,您总是可以编写一个函数来使用现有数组构建一个 currentUser Angular 色对象:

$scope.rolesObjFromArray = function (rolesArr) {
  var rolesObj = {
    "Public": false,
    "Reporter": false,
    "Partner": false,
    "LCSP": false,
    "Admin": false,
    "StrategicPursuit": false,
    "PA": false
  };

  rolesArr.forEach(function (role) {
    rolesObj[role] = true;
  });

  return rolesObj;
}

$scope.currentUser.rolesObj = rolesObjFromArray(currentUserRoles);

这是一个 JSFiddle to play with ,以防万一。请注意,JSFiddle 使用的是 Angular 1.2.1,如果您使用的是更新的版本,则需要进行一些调整。

关于javascript - 在 Angular 中匹配 2 个数组,匹配项作为复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35808847/

相关文章:

javascript - 我只需要将复选框的名称转移到某些像素顶部而不是复选框

javascript - 通过函数获取有关太阳位置的数据。如何?

angularjs - 我可以使用 ngModelController 的 $formatter 来完全控制输入字段的呈现方式吗?

android - 使用 AngularJS 更改 Android 设备上的状态栏颜色

javascript - AngularJs 路由没有错误但不工作

javascript - 有没有一种方法可以使用 HTML5 大纲算法和 CSS(可能还有 JS)生成文档导航?

c# - MSHTML : Calling member of javascript object?

ios - Swift 3.0 - 如何遍历二维数组并将 "value"附加到另一个数组

sql - 展平表中可能为 NULL 或 presto 为空的数组

javascript - 如何使用数组归约来求和对象属性长度而不使用 typeof