使用ng-init的变量集未定义

时间:2015-09-16 05:38:11

标签: javascript angularjs ionic-framework ionic

我是AngularJS的初学者(和JS一样),我遇到了以下问题。

这是html模板:

<ion-view view-title="Playlists">
  <ion-content>
    <ion-list>
        <ion-item ng-repeat="playlist in playlists" ng-init="pageID=playlist.id" href="#/app/music/{{playlist.id}}">
            {{playlist.title}} {{pageID}}
        </ion-item>
    </ion-list>
  </ion-content>
</ion-view>

这是控制器:

.controller('MusicCtrl', function($scope) {
  $scope.playlists = [
    { title: 'Reggae', id: 1 },
    { title: 'Chill', id: 2 },
    { title: 'Dubstep', id: 3 },
    { title: 'Indie', id: 4 },
    { title: 'Rap', id: 5 },
    { title: 'Cowbell', id: 6 }
  ];
  $scope.$watch('pageID', function () {
    console.log($scope.pageID); 
  });

{{pageID}}在页面上正确显示,但在控制台中,pageID未定义。我做错了什么?

1 个答案:

答案 0 :(得分:4)

pageid在控制台中是undefined,因为你没有在控制器中定义它,只是在ng-init中分配值。所以你可以在你的控制器中使用它,然后你就不会得到undefined

.controller('MusicCtrl', function($scope) {
   $scope.pageID = 1;//just an example