SIR间,我有AngularJS一个问题...AngularJS:加载延迟JSON和使用它的多个控制器
我试图加载承诺一个JSON文件,并有两个控制器不同的使用它..我尝试了很多不同的技术,但我不明白......你能帮我吗?
//SERVICE
app.service('AllPosts', function($http, $q){
var deferred = $q.defer();
$http.get('posts.json').then(function(data){
deferred.resolve(data);
});
this.getPosts = function(){
return deferred.promise;
};
this.getPost = function(id){
var post={};
angular.forEach(deferred.promise, function(value) {
if(value.id == id){
post=value;
}
});
return post;
};
});
我创建一个服务调用JSON并以同样的方式,我宣布我的功能我控制器...
app.controller('AllCtrl', function($scope, AllPosts){
AllPosts.getPosts().then(function(posts){
$scope.posts = posts.data;
});
});
在我的第一个控制器我调用函数getPosts获得所有从我的JSON的职位...
app.controller('PostCtrl', function($scope, AllPosts, $routeParams) {
AllPosts.getPost($routeParams.id).then(function(the_post){
$scope.comments = post.comments;
$scope.title = post.name;
$scope.the_content = post.content;
});
});
在第二个控制器,我只想要的职位之一,所以我调用函数的getPost ...
但我不知道该怎么办,在第一种情况下,它适用于所有帖子,但在第二种情况下,不会......我是Angular的新手,如果您有其他方法,它会是太棒了! 非常感谢!
嗯,好的谢谢,我现在就试试吧! :) –
感谢您的回答,我不能让它工作,不知道为什么,但我会看得更近...谢谢;)哦,顺便说一句,carefull与postsPromise和postPromise :) –
控制台中的任何错误?需要隔离什么是或不在工作 – charlietfl