2015-05-01 3 views

ответ

1

Если вы просто хотите, чтобы переключаться между двумя различными источниками массива ng-repeat, вы могли бы сделать это в несколько способов:

1. использовать функцию, чтобы вернуть исходный массив

В контроллере:

var books = [], old_books = []; // don't need to set them on $scope 
$scope.getBooks = function(){ 
    return $scope.isOldBooks ? old_books : books; 
} 

и View использует getBooks() в качестве источника:

<div ng-click="isOldBooks = !isOldBooks">toggle new/old</div> 
<div ng-repeat="item in getBooks()"> 
    {{item}} 
</div> 

2. непосредственно в представлении

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

(вы можете запрограммировать isOldBooks в контроллере)

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) 
} 
Смежные вопросы