我在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()
?
答案 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()
)