我有以下app指令:
(function() {
var app = angular.module('myFeed', []);
app.directive("feedList", function(){
console.log('in feed list directive');
return {
restrict: 'E',
templateUrl: "/static/angular/phone-list/feed-list.template.html",
cotrollerAs: 'myController',
controller: function($http){
var data = $.param({
grant_type: 'password',
username: 'test',
password: 'test',
client_id:'test',
client_secret:'test',
});
var config = {
headers : {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
}
}
$http.post('/o/token/', data, config)
.success(function (data, status, headers, config) {
access_token = data['access_token'];
console.log(access_token);
$http({method: 'GET', url: 'api/posts/', headers: {'Authorization': 'Bearer '+access_token}}).then(function(response) {
this.posts = response.data;
});
})
.error(function (data, status, header, config) {
$scope.ResponseDetails = "Data: " + data +
"<hr />status: " + status +
"<hr />headers: " + header +
"<hr />config: " + config;
});
var header = {
headers : {
'Authorization': 'Bearer '+self.access_token
}
}
},
}
});
})();
我在index.html中的指令如下所示:
<feed-list></feed-list>
模板如下所示:
<li ng-repeat="post in myController.posts>{{post}}</li>
如何让<feed-list>
显示this.posts
中设置的帖子?
答案 0 :(得分:1)
JavaScript函数中此更改的范围。用
来引用它var myController = this;
在控制器的构造函数的开头,然后使用
myController.posts = response.data;
而不是
this.posts = response.data;
在您的http回调函数中。