Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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
Javascript AngularJS 1.5需要设置复选框,以便在未选中ng的对象模型下进行检查_Javascript_Angularjs_Checkbox_Angularjs Ng Repeat_Angular Ngmodel - Fatal编程技术网

Javascript AngularJS 1.5需要设置复选框,以便在未选中ng的对象模型下进行检查

Javascript AngularJS 1.5需要设置复选框,以便在未选中ng的对象模型下进行检查,javascript,angularjs,checkbox,angularjs-ng-repeat,angular-ngmodel,Javascript,Angularjs,Checkbox,Angularjs Ng Repeat,Angular Ngmodel,由于其他一些冲突和依赖性,我没有使用angularjs 1.6.x,我使用的是1.5.x,所以我不确定是否存在一些bug,但我知道ng checked非常糟糕 所以我有ng repeat 2对象 vm.stateList包含所有50个状态 vm.pager包含类似json的对象,在该对象中,如果选择了某个状态,它将位于列表中 因此,我循环显示所有状态作为复选框,但我想将它们设置为选中-如果它们在我的vm.pager对象中找到的话 div ng-repeat="states in vm.stat

由于其他一些冲突和依赖性,我没有使用angularjs 1.6.x,我使用的是1.5.x,所以我不确定是否存在一些bug,但我知道ng checked非常糟糕

所以我有
ng repeat

2对象

  • vm.stateList包含所有50个状态
  • vm.pager包含类似json的对象,在该对象中,如果选择了某个状态,它将位于列表中
  • 因此,我循环显示所有状态作为复选框,但我想将它们设置为选中-如果它们在我的vm.pager对象中找到的话

     div ng-repeat="states in vm.statesList"
    
    复选框我想在我的对象中选中

     <input ng-model="vm.pager.location[$index].state" type="checkbox" id="state{{states}}">{{states.name}}
    

    您可以在控制器中创建一个从每个复选框调用的函数:

    <input ng-model="vm.pager.location[$index].state"
      type="checkbox" id="state{{states}}"
      checked="vm.isInState(states)">{{states.name}}
    
    function isInState(state) {
      return vm.pager.findIndex((item) => item.location[0].state === state) > 0 ? true : false;
    }
    
    {{states.name}
    函数isInState(状态){
    返回vm.pager.findIndex((item)=>item.location[0]。state===state)=>0?true:false;
    }
    
    我想问几个问题,这个复选框是否在重复?如果
    location.state中有任何要设置为选中的值,则无值。。。只是它存在的事实。。。它包含一个值、数字或字母。这是一件非常正常/典型的事情吗?标准是尽可能多地保留模板中的逻辑,是的。最好让控制器来处理这个问题。如果你对你的控制器进行了很好的注释,就很容易理解它想要实现什么。这个`checkbox=…`甚至可以识别为会被调用的东西吗?用checked(打字)替换checkbox我不确定“checked”是否真的会调用该函数。也许您可以提供一个JSFIDLE或代码片段
    
    <input ng-model="vm.pager.location[$index].state"
      type="checkbox" id="state{{states}}"
      checked="vm.isInState(states)">{{states.name}}
    
    function isInState(state) {
      return vm.pager.findIndex((item) => item.location[0].state === state) > 0 ? true : false;
    }