【问题标题】:how to bind the values of two different arrays with each other in angular js如何在angular js中将两个不同数组的值相互绑定
【发布时间】:2016-09-01 11:45:40
【问题描述】:

嗨,我将使用 Angular js 和 json 管理用户访问级别。 我有两个数组,一个用于菜单结构,另一个用于访问级别。

当前访问级别:

    $scope.current_access_levels ={
      "can_home":{"title":"home","value":true},
      "can_mail":{"title":"mail","value":false}
    };

菜单结构:

    $scope.menu = [
      {"id":"1","name":"home","aclvl":"can_home"},
      {"id":"2","name":"mail","aclvl":"can_mail"}
    ];

每个菜单字段都有一个“aclvl”,与“current_access_level”数组中的对象名称相匹配。

我要做的是这样的:

<div ng-app="app" ng-controller="appCtrl">
      <div  ng-repeat="aclvl in current_access_levels">
        <label>{{aclvl.title}}</label><input type="checkbox" value="1" ng-model="aclvl.value"/>
      </div>
      <br />
      <br />
      <ul>
        <li ng-repeat="men in menu">
          <input type="checkbox" ng-model="current_access_levels.(men.aclvl).value"/>{{men.aclvl}}
        </li>
      </ul>
   </div>

例如,如果“men”的“aclvl”等于“can_home”,则复选框值应等于“aclvl.can_home.value”。 任何人都知道我应该如何处理这个!? 我添加了一个小提琴来明确我打算做什么。 谢谢

angular.module('app',[])
  .controller('appCtrl',function($scope){
  
    $scope.current_access_levels ={"can_home":{"title":"home","value":true},"can_mail":{"title":"mail","value":false}};

    $scope.menu = [{"id":"1","name":"home","aclvl":"can_home"},{"id":"2","name":"mail","aclvl":"can_mail"}];
  
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>


<div ng-app="app" ng-controller="appCtrl">
  <!-- current access levels -->
  <p>current access levels</p>
  <div  ng-repeat="aclvl in current_access_levels">
    <label>{{aclvl.title}}</label><input type="checkbox" value="1" ng-model="aclvl.value"/>
  </div>
  <!-- current access levels -->
  <br />
    <div>{{current_access_levels}}</div>
  <br />
  <hr>
  <!-- menu structure just for example -->
  <p>menu structure</p>
  <ul>
    <li ng-repeat="men in menu">
      <input type="checkbox" ng-model="current_access_levels.can_home.value"/>{{men.aclvl}}
    </li>
  </ul>
  <!-- menu structure just for example -->
  
</div>

【问题讨论】:

  • &lt;li ng-repeat="men in menu"&gt; &lt;input type="checkbox" ng-model="current_access_levels.can_home.value"/&gt;{{men.aclvl}} &lt;/li&gt; 您有两个复选框绑定到同一个模型(它们都引用同一个变量)
  • tnx 为您解答,我知道。这是一个展示我将要做什么的例子。我想为每个菜单字段使用“ng-repeat”。菜单的每个字段都有一个“ac_lvl”,应该在“current_access_levels.here.value”中
  • 感谢 Shailendra Singh Deol 的回答。这是正确的做法,并且现在可以使用。

标签: javascript jquery angularjs arrays json


【解决方案1】:

您可以将[]current_access_levels 一起使用,就像-

 <li ng-repeat="men in menu">
      <input type="checkbox" ng-model="current_access_levels[men.aclvl].value"/>{{men.aclvl}}
    </li>

【讨论】:

  • 非常感谢它现在就像一个魅力。由于我的声誉,我现在不能投票。对不起。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-18
  • 2018-02-28
  • 2016-12-29
  • 1970-01-01
  • 1970-01-01
  • 2019-04-19
  • 1970-01-01
相关资源
最近更新 更多