【问题标题】:Accessing javascript object attributes in Backbone.js在 Backbone.js 中访问 javascript 对象属性
【发布时间】:2012-08-12 13:14:55
【问题描述】:

Tastypie 为 django 项目提供了一个 RESTful API,因此我可以使用 Backbone.js。当我点击 url 获取资源集合时,tastepie 包含有关分页的数据,我无法访问这些数据。我有一个主干视图,我在初始化函数中初始化一个集合,然后渲染:

MyView = Backbone.View.extend({
  ...
  initialize: function() {
     this.collection = new MyCollection;
     this.render();
  }
  ...
  render: function() {
     console.log(this.collection); // this.colllection.toJSON() returns []
     console.log(this.model);  // this.model.toJSON() returns the object
  }
});

下一页的链接包含在 this.collection 的元属性中,但我无法访问它。对集合调用 toJSON() 将返回 []。问题是 console.log(this.collection) 给出了这个:

> child
_byCid: Object
_byId: Object
_callbacks: Object
length: 3
meta: Object
models: Array[3]
toJSON: function (key) {
__proto__: ctor

我想要的 url 在 this.collection 的 meta 属性中(所以我可以看到它!),但我无法访问它。调用 toJSON 适用于模型,但不适用于集合。如何访问集合的属性?

【问题讨论】:

    标签: javascript backbone.js tastypie


    【解决方案1】:

    可以像this.collection.meta一样简单吗?

    更新

    另外你必须小心使用console.log,当你调试不简单的对象时不要相信它,检查:

    在您的代码中尝试:

    this.collection.fetch({
      success: function( collection ) { 
        console.log( "collection.meta", collection.meta ) 
      } 
    });
    

    【讨论】:

    • 我希望如此,但这给了我不确定性。
    • 我认为,当您尝试我的解决方案时,您的收藏仍未获取。试试this.collection.fetch({success: function( collection ) { console.log( "collection.meta", collection.meta ) } })。你信任console.log 而你不应该:stackoverflow.com/questions/11459244/… | stackoverflow.com/questions/9911637/…
    • 你完全正确。在 fetch 内部,我可以访问属性。我会更加小心控制台。如果您想对此添加另一个答案,我可以接受。
    • @user875700 我刚刚用最终对您有帮助的信息更新了这个答案。
    猜你喜欢
    • 2011-09-11
    • 1970-01-01
    • 2023-03-31
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2018-09-13
    • 1970-01-01
    相关资源
    最近更新 更多