我刚刚发现了角的“餐厅”库,哦,我的它看起来真的很棒!但是,在使用它执行一些简单的GET请求时,我遇到了一些复杂的情况。我只是尝试并尝试从我的API路由中返回一个JSON对象的列表。对服务器的GET请求是成功的,但是当我试图将结果绑定到$scope对象并显示它们时,我似乎无法让它工作。请参考我的控制器脚本,在那里我初始化并使用getList()方法检索对象列表。
angular.module("app")
.controller("BlogsController", function ($scope, $location, Restangular) {
var Blogs = Restangular.all("blogs");
$scope.list = function () {
$scope.blogs = Blogs.getList("blogs");
}我已经在HTML页面上初始化了"list()“函数,并且使用ng重复指令循环所有JSON对象。以下是我的HTML标记:
<tr data-ng-repeat="blog in blogs">
<td>{{blog.title}}</td>
<td>{{blog.category}}</td>
<td>{{blog.author}}</td>
<td>{{blog.content}}</td>
<td>{{blog.createdOn}}</td>
</tr>我对AngularJs框架非常陌生,我想知道是否有人知道我面临的潜在问题。请评论,并让我知道什么需要修正。非常感谢所有的回答,谢谢。
发布于 2014-03-22 15:06:57
您必须使用承诺的$object属性,getList()返回该属性。在这里,HTTP响应的值将在解析承诺时被填充。
$scope.blogs = Blogs.getList("blogs").$object;另一种比较显式和不那么“神奇”的获取值的方法是将回调附加到getList()返回的承诺,当承诺被解析时将调用该回调:
Blogs.getList("blogs").then(function(blogs) {
// Success callback
$scope.blogs = blogs;
}, function(error) {
// Error callback
console.log("we had an error here ...");
});发布于 2014-03-22 17:32:28
var Blogs = Restangular.all("blogs").getList();这是你的承诺,你必须像这样用then()来解决它
Blogs.then(function(blogs){
$scope.blogs = blogs;
});https://stackoverflow.com/questions/22578390
复制相似问题