2014-03-29 60 views
0

我正在嘗試神話般的Restangular庫,並且在嘗試返回一些JSON對象並將它們綁定到$ scope對象時遇到了一些麻煩。AngularJS:Restangular Library

我的工廠腳本里面有這個函數,它基本上只是返回一個利用Restangular.getList()函數的博客列表。

angular.module("ecmaworld").factory("Authenticate", function(Restangular) { 
// Testing Function 
var Blogs = Restangular.all("blogs"); 
return { 
    blogs: function() { 
     Blogs.getList("blogs").then(function(blogs) { 
      return blogs; 
     }, function(error) { 
      console.log(error); 
     }); 
    } 
};}); 

此處的Factory方法返回博客文章列表。然後我試圖調用這個函數,我在工廠腳本ahve定義,並利用它在像這樣我的控制器腳本:

angular.module("ecmaworld").controller("LoginController", function($scope, Authenticate) { 

//Testing function 
$scope.getBlogs = function() { 
    $scope.blogs = Authenticate.blogs(); 
}; 
}); 

當我嘗試使用「數據-NG-重複」指令循環通過所有的博客文章,我沒有得到任何顯示。我可以看到,API方法已經通過谷歌開發人員工作,因爲http響應返回JSON對象。但是,我不確定爲什麼當他們試圖在VIEW中遍歷它們時不顯示它們。如果你可以請幫助我,那將非常感激。我只是Angular的新手,所以去輕鬆的傢伙。

謝謝。

回答

1

blogs()方法需要返回的承諾...

blogs: function() { 
    return Blogs.getList("blogs").then(function(blogs) { 
     return blogs; 
    }, function(error) { 
     console.log(error); 
    }); 
} 

,然後將結果分配給scope屬性時承諾解決...

$scope.getBlogs = function() { 
    Authenticate.blogs().then(function (blogs) { 
     $scope.blogs = blogs; 
    }); 
}; 
+0

好極了!這現在對我來說很有效。它完全放棄了我的想法,我沒有返回任何東西。你能向我解釋一下'承諾'究竟是什麼? – Maff