角度ng重复范围问题

时间:2015-03-24 20:14:44

标签: javascript angularjs node.js angularjs-ng-repeat

我的{{}}中的任何内容都没有显示在我的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);
    });
});

2 个答案:

答案 0 :(得分:1)

由于您使用的是controller as syntac,因此您应该将控制器中的变量应用于this而不是$scope

在使用转发器的AngularJS Ng-repeat is not working as expected中查看相同的问题

低于上一个问题的答案: 在您的转发器中,您在控制器中循环announcements.announcements,并设置$scope.announcements = response

您可以更改ng-repeat="eachAnnouncement in announcements"中的转发器或将范围变量更改为:$scope.announcements = {announcements : response}

答案 1 :(得分:0)

想出来!以供参考: 我的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>