这是我的代码
$scope.airLineFilter = function ("jai") {
$scope.Names=["sai","ram","jai","kiran","radha"];
$scope.airLinesFilterData = $scope.Names;
var airLinedata = $scope.airLinesFilterData.indexOf(data);
if (airLinedata > -1) {
$scope.airLinesFilterData.splice(airLinedata, 1);
} else {
$scope.airLinesFilterData.push(data);
}
};
如果我们删除“jai”,那么它将删除“$ scope.airLinesFilterData”而不是“$ scope.Names”中删除。
答案 0 :(得分:2)
首先,你没有将参数传递给airLineFilter,因为你直接在该函数中给出了字符串值。这是错误的。你在indexOf方法中提到的数据是什么?我已经改变了你的功能如下。
angular.module('myApp', [])
.controller('myCtrl', function($scope){
$scope.airLineFilter = function (value) {
$scope.Names=["sai","ram","jai","kiran","radha"];
$scope.airLinesFilterData = angular.copy($scope.Names);
var airLinedata = $scope.airLinesFilterData.indexOf(value);
if (airLinedata > -1) {
$scope.airLinesFilterData.splice(airLinedata, 1);
} else {
$scope.airLinesFilterData.push(value);
}
};
$scope.airLineFilter("jai");
});
在这里,我打电话给airLineFilter,我正在通过' Jai'作为该功能的价值。现在它将删除' jai'来自$ scope.airLinesFilterData数组,它不会从$ scope.Names中删除值。我使用了angular.copy();
请参阅此js小提琴示例。 http://jsfiddle.net/dprtrj2v/
由于