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

在使用中继器的 中看到相同的问题

在上一个问题的答案下方: 在你的中继器中,你在控制器中循环播放 announcements.announcements,你设置了 $scope.announcements = response

要么更改 ng-repeat="eachAnnouncement in announcements" 中的中继器,要么将范围变量更改为:$scope.announcements = {announcements : response}

想通了!以供参考: 我的 HTML 中没有显示任何内容,因为没有为控制器分配任何值。要将 "latest" 分配给我的控制器,我必须这样做:

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>