我有以下的決心:角注射進入的決心控制器日誌不確定
.state('posts', {
url: '/posts/{id}',
templateUrl: 'posts.html',
controller: 'postsController as postsCtrl',
resolve: {
post: getSinglePostWrapper
}
})
和輔助功能
getSinglePostWrapper.$inject = ['postsService', '$stateParams'];
function getSinglePostWrapper(postsService, $stateParams) {
return postsService.getSinglePost($stateParams.id);
}
和我的控制器看起來像這樣:
angular.module('flapperNews')
.controller('postsController', postsController);
postsController.$inject = ['postsService', 'post'];
function postsController(postsService, post) {
var vm = this;
vm.post = post;
console.log(post); //undefined here
}
我當我嘗試從解決方案中注入帖子時收到未定義的「帖子」。我試着在getSinglePostWrapper
函數中記錄帖子,並記錄了正確的對象。我似乎失去了一些約束力或從決心到控制器的東西。
崗位服務
angular.module('flapperNews')
.factory('postsService', postsService);
postsService.$inject = ['httpService'];
function postsService(httpService) {
return {
getSinglePost: getSinglePost
}
function getSinglePost(postId) {
httpService.baseGet('/posts/' + postId)
.then(function(data) {
return data;
}, function(data) {});
}
}
的HTTPService
angular.module('httpService', [])
.factory('httpService', httpService);
httpService.$inject = ['$http', '$q'];
function httpService($http, $q) {
return {
baseGet: baseGet
}
function baseGet(url) {
return $http.get(url).then(
function (result) {
return result.data;
},
function (result) {
return $q.reject(result);
}
);
}
}
我已經注入的HTTPService到第一名我宣佈flapperNews模塊。
FYI-一切正常。其他http請求很好。這個也很好。它只是不會將帖子插入控制器。
我不明白爲什麼這不起作用。你能發佈你的服務代碼嗎? –
@AnidMonsur sure –
@AnidMonsur up –