angularjs 次重复 SELECT 全部

angularjs ng-repeat SELECT ALL

我有两列使用 ng-repeat 的复选框,一列称为 'Calc.',另一列称为 'Calc. Final'。

我有一个按钮,我希望在单击时匹配 Calc. FinalCalc. 的选择。

函数:

function updateCalcFinal() {
    vm.desktop.comparables.comp.forEach(e => {
        e.calcFinal = e.calc;
        console.log([e.calcFinal, e.calc]);
    });
}

HTML:

<button class="btn btn-sm btn-primary pull-right mt5 mb5" 
        ng-disabled="deskCtrl.loading" 
        ng-click="deskCtrl.updateCalcFinal()">
  <i class="glyphicon glyphicon-ok"></i>
  &nbsp;&nbsp;Igualar Calc.
</button>

以上代码在 console.log 中绑定,但未在视图中更新。任何帮助将不胜感激。

我的经验是,当控制台更新而不是视图时,存在一些异步效果导致差异。好像数据更新了但是angularjs不知道它更新了

我建议查找 $scope.$apply()

建议参考:

这是一个工作的 Plunker,它演示了差异和实现:https://plnkr.co/edit/vdLJUg2LNIcBz5ng1kwr?p=preview

$scope.withApply = function(){
    $scope.name = 'World';
    console.log('button pressed')
    setTimeout(function(){
      console.log('$scope.name changed to async')
      $scope.name = 'async'
      $scope.$apply()                           <------ $scope.$apply()
    },1000)
  }
  $scope.withOutApply = function(){
    $scope.name = 'World';
    console.log('button pressed')
    setTimeout(function(){
      console.log('$scope.name changed to async')
      $scope.name = 'async'
    },1000)

apply() 函数在异步回调结束时被调用,我认为您正在包装不起作用的异步操作。