【问题标题】:Binding an array of json results to html in angularjs在angularjs中将一组json结果绑定到html
【发布时间】:2013-09-30 07:14:51
【问题描述】:

我对 angularjs 很陌生,并且得到了一个我想要显示的 json 结果集。我有以下内容;

服务:

var Post = function(data) {
    angular.extend(this, data);
}

Post.getAll = function() {
    return $http.get('/api/posts').then(function(response) {
        var Posts = [];
        for(var i = 0; i < response.data.length; i++) {
            Posts.push(new Post(response.data[i]));
        }
        return Posts;
    });
};

控制器方法:

$scope.Posts = Posts.getAll();

html 视图:

<ul ng-repeat="post in Posts">
    <li>{{ post.title }}</li>
</ul>

问题是,虽然一切都正确重复,但我无法访问每个对象的成员。例如:post.title 或 post.text 不显示。但是,如果我使用 {{ post }} 它会显示整个结果的 json。

我哪里错了?

编辑:感谢下面的评论,如果我使用

post[0].title

它正确显示,但是这是显示 json 结果数组的正确方法吗?我更喜欢使用正确的方法,而不是“行之有效”的方法。

【问题讨论】:

  • 可能是您访问它的方式吗? {{post}} 显示了什么?
  • {{ post }} 显示整行的 json,例如 "{"0":{"title":"Test title","introduction":"test Introduction.." I'我不确定如何转换对象以便我可以绑定 {{ post.title }} 或者是否有其他方式我应该绑定它。
  • 从返回数据的方式来看,(post[0].title) 是正确的方法。您可以更改数据源以删除 {"0":
  • 是的,post[index].title 是绑定 JSON 的正确方法
  • 好的,感谢您的帮助!

标签: angularjs angularjs-ng-repeat angularjs-service


【解决方案1】:

根据 ranru 和 Zack Argyle 的 cmets,我只需将索引添加到 post,例如:post[0].title。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-11
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    相关资源
    最近更新 更多