簡體   English   中英

Angular ng-repeat范圍問題

[英]Angular ng-repeat scope issue

{{}}中的任何內容都沒有顯示在html文件中。 有人可以告訴我我在做什么錯。 我的控制台沒有錯誤。

“ GOT DATA”將在我的控制台中打印,但不會顯示在我的文件中。

這是我的HTML代碼

<div class="announcements" ng-controller="onBusinessAnnouncementCtrl as announcements">
     {{announcements.latest}}
</div>

這是我從服務器提取的js代碼

app.controller('onBusinessAnnouncementCtrl', function($scope, $http) {

   $http.get('http://localhost:3000/latest')
    .success(function(responses) {
      //$scope.latest = responses;
      $scope.latest = "GOT DATA";
      console.log($scope.latest);
    });
});

因為您將controller as syntac ,所以應該將控制器中的變量應用於this而不是$scope

在使用中繼器的情況下,在AngularJS中看到相同的問題Ng-repeat無法正常工作

在上一個問題的答案下面:在中繼器中,您遍歷控制器中的announcements.announcements ,您設置了$scope.announcements = response

您可以在ng-repeat="eachAnnouncement in announcements"更改轉發器,或者將范圍變量更改為: $scope.announcements = {announcements : response}

弄清楚了! 供參考:HTML中未顯示任何內容,因為沒有為控制器分配任何值。 要將“最新”分配給我的控制器,我必須這樣做:

app.controller('onBusinessAnnouncementCtrl', function($scope, $http) {
$http.get('http://localhost:3000/latest')
    var this = this;
    .success(function(responses) {
      this.latest = responses;
    });
});

<div class="announcements" ng-controller="onBusinessAnnouncementCtrl as announcements">{{announcements.latest}}</div>

暫無
暫無

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

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