0

我试图在我的角度应用程序中添加功能来记录复选框点击时的顺序,并以点击的顺序显示它们。Angular记录点击复选框的顺序

下面是摘录:

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"; 
     } 
    }; 

}) 
}); 

在这个片段中数组应显示在他们点击的顺序号。

回答

0

不知道如果我明白你需要什么,但是请这个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; 
    })); 
};