2015-12-02 76 views
0

我試圖找到一種方法,允許我保存數組(或JSONP輸出)中的特定數據。保存數組中的特定數據

可以說我有這個,

function Ctrl($scope) { 
    $scope.movies = [ 
    {'title' : 'Star Wars', 'id' : '1'}, 
    {'title' : 'Inception', 'id' : '2'}, 
    {'title' : 'Inherent Vice', 'id' : '3'} 
    ]; 
} 

我顯示的結果是這樣,

<div ng-controller="Ctrl"> 
    <div ng-repeat="movie in movies"> 
    {{ movie.id }} : {{ movie.title }} - <a href="#">Add Movie to watchlist</a> 
    </div> 
</div> 

當你點擊add movie to watchlist我要存儲在一個範圍那部電影的標題和ID,所以我稍後可以使用它。我怎麼能這樣做?

這裏是plunkr例如http://plnkr.co/edit/tycuNmJy71Yr4SUia2e5?p=preview

回答

3

試試這個代碼:: Demo

HTML:

<!doctype html> 
<html ng-app> 
    <head> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script> 
    <script src="script.js"></script> 
    </head> 
    <body>  
    <div ng-controller="Ctrl"> 
     <div ng-repeat="movie in movies"> 
      {{ movie.id }} : {{ movie.title }} - <a href="#" ng-click="addMovie(movie)">Add Movie to watchlist</a> 
     </div>  
    WishList: {{wishlist}} 
    </div> 
</body> 
</html> 

控制器:

function Ctrl($scope) { 
    $scope.movies = [ 
    {'title' : 'Star Wars', 'id' : '1'}, 
    {'title' : 'Inception', 'id' : '2'}, 
    {'title' : 'Inherent Vice', 'id' : '3'} 
    ]; 
    $scope.wishlist = []; 

    $scope.addMovie = function(movie) 
    { 
    $scope.wishlist.push({id: movie.id, title: movie.title}); 
    } 
} 
+0

讓我知道它適合你嗎? –

+1

看起來像'push'函數是我正在尋找的。感謝這個例子。 –

+0

歡迎@PeterBoomsma –

0

我添加功能到您plnkr

demo

function Ctrl($scope) { 
 
    $scope.movies = [ 
 
    {'title' : 'Star Wars', 'id' : '1'}, 
 
    {'title' : 'Inception', 'id' : '2'}, 
 
    {'title' : 'Inherent Vice', 'id' : '3'} 
 
    ]; 
 
    
 
    $scope.select = function (movie) { 
 
    //do your stuff here 
 
    console.log(movie.title); 
 
    } 
 
}
<!doctype html> 
 
<html ng-app> 
 
    <head> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script> 
 
    <script src="script.js"></script> 
 

 
    </head> 
 
    <body> 
 

 
<div ng-controller="Ctrl"> 
 
    <div ng-repeat="movie in movies"> 
 
    {{ movie.id }} : {{ movie.title }} - <a href="#" ng-click="select(movie)">Add Movie to watchlist</a> 
 
    </div> 
 
</div> 
 

 

 

 
    </body> 
 
</html>

0

是的,你可以編寫一個函數中,你可以通過所選項目的ID並將其存儲在範圍變量中。 象下面這樣:

$scope.getDetails = function(id){ 
    alert(id); 
    $scope.storedMovie = $scope.movies[id].title; 
    alert($scope.storedMovie) 
} 

UPDATED PLUNKER