【问题标题】:Angular record the order of checkboxes as clickedAngular 记录被点击的复选框的顺序
【发布时间】:2014-09-25 18:19:38
【问题描述】:

我正在尝试在我的 Angular 应用程序中添加功能,以记录复选框被单击时的顺序,从而以与单击时相同的顺序显示它们。

这里是sn-p:

var app = angular.module('checkbox', []);

app.controller('homeCtrl', function ($scope) {
    $scope.array = [1, 5];
    $scope.array_ = angular.copy($scope.array);
    $scope.list = [{
        "id": 1,
            "value": "apple",
    }, {
        "id": 3,
            "value": "orange",
    }, {
        "id": 5,
            "value": "pear"
    }];

    $scope.update = function () {
        if ($scope.array.toString() !== $scope.array_.toString()) {
            return "Changed";
        } else {
            return "Not Changed";
        }
    };

})
});

在这个 sn-p 数组中应该按点击顺序显示数字。

【问题讨论】:

    标签: angularjs angularjs-scope angularjs-ng-repeat angular-ui


    【解决方案1】:

    不确定我是否完全理解您的需求,但请查看此Plunker

    想法是使用这样的函数来记录点击顺序:

    $scope.onClick = function(box) {
      var index = $scope.model.clickOrder.indexOf(box);
      if (index !== -1) {
        $scope.model.clickOrder.splice(index, 1);
      } else {
        $scope.model.clickOrder.push(box);
      }
      updateOrderedList();
    };
    

    还有一个像这样更新复选框顺序的函数:

    var updateOrderedList = function() {
      $scope.model.orderedList = []
        .concat($scope.model.clickOrder)
        .concat($scope.model.list.filter(function(item) {
          return $scope.model.clickOrder.indexOf(item) === -1;
        }));
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多