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