我有一个逻辑,例如我有四个复选框,它们的行为应与现有代码相同。逻辑在起作用。但是我确实使用语法检查和取消检查。

 angular.element(document.querySelector('#c_'+j)).attr('checked', true);

 angular.element(document.querySelector('#c_'+j)).attr('checked', false);


这不会反映在相应复选框元素的模型值中。您可以检查所附的屏幕截图。前三个框被选中,但对于实际单击的元素其余部分显示为“ true”,仍为“ false”。我需要更新的模型值。任何人都可以帮忙!

这是工作示例https://plnkr.co/edit/zA5V9gc6jTpPq3pIuvC8?p=preview

javascript - 当使用angular.element(document.querySelector(id))。attr('checked',true)更改复选框值时,模型值不会得到反射(reflect)。-LMLPHP

最佳答案

您应该对$scope进行操作才能实现双向绑定。

因此,您的功能将变为

function rangeCal(arg, bool){
    var tmparray= [];
    var selectedcheckbox;
    for(var propt in arraymatrix){
      tmparray = arraymatrix[propt];
      for(var i=0; i <= tmparray.length; i++){
        if(month === tmparray[i]){
          selectedcheckbox = propt;

          var a = 'c_'+selectedcheckbox;
          $scope[a]= true
          var gap = arg.split('_')[1];
          if(!bool){
            for(var j=propt; j<= gap; j++){

              var j = 'c_'+j;
              $scope[j]= true
            }
          }else if(bool) {
            for(var k=propt; k<= gap+1; k++){
               if(k > gap){
                var k = 'c_'+k;
                $scope[k]= false
               }

                var j = 'c_'+j;
                $scope[j]= true
            }
          }
        }
      }
    }


HERE IS THE WORKING PLUNKER

关于javascript - 当使用angular.element(document.querySelector(id))。attr('checked',true)更改复选框值时,模型值不会得到反射(reflect)。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42345351/

10-10 09:15