复选框选中或取消选中时显示模态

时间:2016-01-15 04:34:42

标签: angularjs twitter-bootstrap checkbox

点击此处查看我的代码: http://plnkr.co/edit/Z7QI9Ec53zfkDylnseAc?p=preview

HTML:

$scope.save = function(item){
 $scope.mods = item;
  $scope.albumNameArray = [];
  angular.forEach($scope.albums, function(album){
  if (album.selected) $scope.albumNameArray.push(album.name);
  return false;
  });
 };
 $scope.edit = function(){
            if ($scope.albumNameArray ) {
                            $('#showModal').modal('show');
                        } else {
                            $('#showModal2').modal('show');
                        }

          }

脚本:

View.OnClickListener handleOnClick(ToggleButton mButton, boolean mBoolean) {
    return new View.OnClickListener() {
        public void onClick(View v) {
            mBoolean = !mBoolean;
            updateUi(mButton, mBoolean);
        }
    };
}

如果单击保存按钮而不选中复选框,我的项目工作正常但是如果我检查然后取消选中它,则会出现相同的模态。 这仅在首次重新加载时才能正常工作。 我想做的是,如果我选中复选框,ok模式将显示其他一个模态将显示而不重新加载

1 个答案:

答案 0 :(得分:0)

  

仅在首次重新加载时才能正常工作。

它第一次工作的原因是因为$scope.albumNameArray数组未定义,直到第一次调用$scope.save

您应该在调用$scope.save之前初始化一个空数组,然后在length语句中检查数组的if属性。

以前,您只是检查是否已定义$scope.albumNameArray,即使数组为空也会返回true(这就是为什么需要检查length属性以确定数组是否包含任何数组值)。

Updated Example

$scope.edit = function(){
  if ($scope.albumNameArray.length) {
    $('#showModal').modal('show');
  } else {
    $('#showModal2').modal('show');
  }
}