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