解除AngularJS上数组的绑定

解除AngularJS上数组的绑定,angularjs,Angularjs,情况就是这样。我有两个具有预定义值的作用域数组,它们是“排序”和“预排序”,并且它们没有绑定在一起。我有向“排序”数组添加值的按钮和重置按钮。单击重置按钮,使“排序”数组的值和“预排序”数组的值相同。但是问题是,当我单击重置按钮时。这两个数组现在已绑定。我希望在单击重置按钮后不被绑定 请参阅以下代码: 函数isInArray(值,数组){ 返回数组.indexOf(value)>-1; } 函数ascendingArrayList(值,数组){ 新值=值。替换('-','') index=ar

情况就是这样。我有两个具有预定义值的作用域数组,它们是“排序”和“预排序”,并且它们没有绑定在一起。我有向“排序”数组添加值的按钮和重置按钮。单击重置按钮,使“排序”数组的值和“预排序”数组的值相同。但是问题是,当我单击重置按钮时。这两个数组现在已绑定。我希望在单击重置按钮后不被绑定

请参阅以下代码:

函数isInArray(值,数组){
返回数组.indexOf(value)>-1;
}
函数ascendingArrayList(值,数组){
新值=值。替换('-','')
index=array.indexOf(值);
//警报(索引);
//条件语句是为了确保若字段还并没有进行任何排序,它不会删除任何内容
//注释条件以对每个字段启用单个排序
如果(索引!=-1){
阵列拼接(索引1);
}
array.push(新的_值);
返回数组;
}
函数下降ArrayList(值,数组){
新值=值。替换('-','')
index=array.indexOf(新的_值);
//条件语句是为了确保若字段还并没有进行任何排序,它不会删除任何内容
//注释条件以对每个字段启用单个排序
如果(索引!=-1){
阵列拼接(索引1);
}
array.push(值);
返回数组;
}
var-app=angular.module('myApp',[]);
app.config(函数($interpolateProvider,$httpProvider){
//更改模板标记
$interpolateProvider.startSymbol(“[]”);
$interpolateProvider.endSymbol(']]');
});
app.controller('myController',函数($scope){
$scope.sorts=[“排名顺序”];
$scope.preSort=[“排名顺序”];
$scope.tableHeaders=[
{'name':'No.','field':'-rank_order'},
{'name':'Code'},
{'name':'Description'},
{'name':'Department','field':'-rank_Department'},
{'name':'Type','field':'-rank_Type'},
{'name':'Updated By','field':'-Updated_By_uubio_u_u用户_code'},
{'name':'Date Updated','field':'-Date_Updated'},
];
$scope.reset=函数(){
$scope.sorts=$scope.preSort;
}
$scope.sort=函数(字段){
if(isInArray(字段$scope.sorts)){
$scope.sorts=ascendingArrayList(字段$scope.sorts)
}否则{
//$scope.sorts.push(字段);
$scope.sorts=下降ArrayList(字段,$scope.sorts)
}
}
});

[[x.name]]单击进行排序
预排序:[[preSort]]------------------------------------排序:[[sorts]]

单击以重置
$scope.reset()中,您必须使用某种方法来克隆数组,而不是在作用域变量之间进行赋值

您可以使用例如的u.map函数

$scope.sorts = _.map($scope.preSorts, _.clone)

使用
角度。复制

    $scope.reset = function(){

        $scope.sorts = angular.copy($scope.preSort);
    }

有关详细信息,请参见

尝试使用此$scope.reset=function(){$scope.sorts=[“排名顺序”];}angular.copy会起作用