基于JQuery和Bootstrap的烤面包机

时间:2016-12-19 09:52:30

标签: javascript jquery angularjs

在我的HTML页面中,我有一个表格,其中每行都有一个复选框。

我的要求是如果选择多行,即如果数组长度为2,则必须显示烤面包机消息。

我有一个用例,它是,

  1. 如果我选择2行(数组长度为2),则显示消息。
  2. 然后选择第3行(数组长度为3)并再次取消选择第3行(数组长度再次为2)。
  3. 现在它也会显示消息。在这里,我不想要那个吐司。
  4. 我的方法是:

     $scope.toggleOne = function () {
            if ($scope.selectedUsers.length === 2) {
                showMessage();
            }
            for (var j = 0; j < $scope.users.length; j++) {
                if (!$filter('filter')($scope.selectedUsers, $scope.users[j].id, true).length) {
                    $scope.selectAllCheckboxOfUsers = false;
                    return;
                }
            }
            $scope.selectAllCheckboxOfUsers = true;
        }
    

2 个答案:

答案 0 :(得分:0)

如果您想在从1个选中到2个选中时显示信息,您可以检查:

var previousSelectedNum = 0;

$scope.toggleOne = function () {

    if ($scope.selectedUsers.length === 2 && previousSelectedNum === 1) {
        showMessage();
    }

    // ...

    previousSelectedNum = $scope.selectedUsers.length;
}

答案 1 :(得分:0)

您可以使用诸如

之类的标志
var isMessageShown = false;

然后在你的函数中使用as,

$scope.toggleOne = function () {
    if($scope.selectedUsers.length === 1){
         isMessageShown = false;
    }
    if ($scope.selectedUsers.length === 2 && !isMessageShown) {
        isMessageShown = true;
        showMessage();
    }
    for (var j = 0; j < $scope.users.length; j++) {
        if (!$filter('filter')($scope.selectedUsers, $scope.users[j].id, true).length) {
            $scope.selectAllCheckboxOfUsers = false;
            return;
        }
    }
    $scope.selectAllCheckboxOfUsers = true;
}