如何在Angular JS中替换另一个变量?

时间:2015-05-01 08:47:30

标签: angularjs

我在Angular JS中有两个数组:

$scope.books = [];
$scope.old_books = [];

还有ng-repeat

<div ng-repeat="item in books"></div>
<div ng-click="Do()"></div>

如何在books上替换变量old_books并在点击ng-repeat时使用相同的Do()

2 个答案:

答案 0 :(得分:1)

如果我理解正确,你想要交换两个变量。这就是你想要的。

您需要在将一个变量复制到另一个变量时使用angular.copy,这将创建当前对象的clone对象。

$scope.do = function(){
   var temp_var = angular.copy($scope.old_books)
   $scope.old_books = angular.copy(books);
   $scope.books = angular.copy(temp_var)
}

答案 1 :(得分:1)

如果您只想在var books = [], old_books = []; // don't need to set them on $scope $scope.getBooks = function(){ return $scope.isOldBooks ? old_books : books; } 的两个不同数组源之间切换,可以通过以下几种方式进行切换:

1。使用函数返回源数组

在控制器中:

getBooks()

并且视图使用<div ng-click="isOldBooks = !isOldBooks">toggle new/old</div> <div ng-repeat="item in getBooks()"> {{item}} </div> 作为来源:

<div ng-click="isOldBooks = !isOldBooks">toggle new/old</div>
<div ng-repeat="item in ((isOldBooks && old_books) || books)">
  {{item}}
</div>
直接在视图中

2。

isOldBooks

(您可以在控制器中预设A::create()