【问题标题】:Backbone.js - fetch data and displayBackbone.js - 获取数据并显示
【发布时间】:2011-08-12 04:01:07
【问题描述】:

我刚刚开始使用 Backbone.js。这是我的代码。

$(function(){

    //Backbone Model
    var Cat = Backbone.Model.extend({});

    // create a collection
    var CatCollection = Backbone.Collection.extend({
        model: Cat,
        url: 'http://localhost/cats/index.php/cats/index'
    });
    var catCollection = new CatCollection();
    catCollection.fetch();

    // Backbone view
    var CatView = Backbone.View.extend({
        el: $("#contents"),
        initialize: function() {
            this.render();
        },
        render: function() {
            this.el.html(catCollection);
        }
    });

    var catView = new CatView();
});

我正在做的是。

  1. 创建主干模型
  2. 使用我创建的模型创建一个集合。
  3. 从 MySQL 数据库中获取数据 - 这将返回一个 JSON 数据对象。
  4. 在 div "#contents" 中显示获取的数据。

在谷歌浏览器上,我可以看到“fetch()”方法有效,因为我可以看到我的 JSON 对象返回为

[{"id":"1","name":"stella","age":"5"},{"id":"2","name":"Max","age":"2"}]

但如果我在获取后执行“alert(catCollection)”,它会显示“[object] [object]”。

展示这个的最佳方式是什么?

【问题讨论】:

  • 我也一直在努力学习 Backbone。我没有答案,只是观察:在我看来,您的 this.el.html(catCollection) 行不起作用,因为您没有提供模板或任何东西来呈现该集合.
  • 警报(catCollection.toJSON())

标签: backbone.js


【解决方案1】:

您应该使用 JST 数组中的模板。

$(this.el).html($(JST["comments/item"](model.toJSON())));

"cmets\item" 是模板路径和名称 如果您使用的是 Rails,只需使用 Jammit 并使用 ERB(默认)或 Jade 编写模板

【讨论】:

    【解决方案2】:

    backbone.js 文档给出了一个这样的例子:

    alert(JSON.stringify(catCollection));
    

    http://backbonejs.org/#Collection-toJSON

    【讨论】:

      【解决方案3】:

      使用console.log

      【讨论】:

      • 我一直在使用 console.log 来打印值。但我想知道向视图显示数据的正确方法。
      猜你喜欢
      • 2013-01-19
      • 1970-01-01
      • 2013-11-30
      • 1970-01-01
      • 2021-03-12
      • 2018-02-03
      • 2013-05-07
      • 2018-11-10
      • 1970-01-01
      相关资源
      最近更新 更多