【发布时间】:2016-07-14 21:16:32
【问题描述】:
先生们,我对 AngularJS 有疑问...
我正在尝试加载一个 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 的新手,如果你有其他方法,那就是也很棒! 非常感谢!
【问题讨论】:
标签: javascript angularjs json controller