我有以下的决心:角注射进入的决心控制器日志不确定
.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 –