簡體   English   中英

如何將AngularJS表達式傳遞給控制器

[英]How to pass AngularJS expressions to controller

我想將AngularJS Expression值傳遞給控制器​​。

HTML代碼:

<div data-ng-controller="AlbumCtrl">
<div data-ng-repeat="z in songInfo">
      <div data-ng-repeat="b in z.album">
  {{b.tracks}}
      </div>
</div>

 <!-- Pagination   -->      
 <div class="pageing">
<a class="prev" data-ng-disabled="currentPage == 0" data-ng-click="currentPage=currentPage-1">prev</a>
<a class="pageingg" href="#/song">{{currentPage+1}}/{{numberOfPages()}}</a>
<a class="next" data-ng-disabled="currentPage >= data.length/pageSize - 1" data-ng-click="currentPage=currentPage+1">next</a>
</div>

</div>

這里{{b.tracks}}是專輯中曲目總數的count 我必須將此數據傳遞給控制器ALbumCtrl

控制器:

.controller('AlbumCtrl', function($scope, $routeParams, $http) {
    $scope.album_id = $routeParams.albumId;
    $http.post('api-call.php', { albumid: $scope.album_id, evt: 13 }).success(function(data) {
        $scope.songInfo = data;
      }); 

    //Pagination
    $scope.currentPage = 0;
    $scope.pageSize = 10;
    $scope.data = [];
    $scope.numberOfPages=function(){
        return Math.ceil($scope.data.length/$scope.pageSize);                
    };
    for (var i=0; i<AngularJS expression value; i++) {
        $scope.data.push("Item "+i);
    }
});

在這里,在控制器AngularJS expression value是我們必須得到的值。

任何幫助都會非常值得一提。 謝謝

如果它只有一個值。 然后你可以輕松地從控制器獲取值,你不需要傳遞它。

試試這種方式$scope.songInfo[0].album[0].tracks

就像是

  for (var i=0; i< $scope.songInfo[0].album[0].tracks; i++) {
        $scope.data.push("Item "+i);
    }

試試這兩行,

var obj = JSON.parse($scope.songInfo);
var track = obj.root.tracks[0];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM