使用backbonejs在underscorejs模板中迭代_.each时获取未定义

时间:2013-01-23 08:38:34

标签: backbone.js underscore.js codeigniter-restserver

我使用库philsturgeon / codeigniter-restserver获取JSON 当我检查控制台的响应部分时,我得到了正确的JSON值,如

this: [{name:test,address:test},{name:test2,address:test2}].

在前端我希望这些值显示在模板中。但是当我执行{"readyState":1}时,它只返回<%= JSON.stringify(ledgers) %>

我从我的视图中调用模板:

$("#container-left").html(this.template({ledgers:app.ledgers.fetch()}));

我的REST控制器功能如下:

public function index_get()
{

    $this->response($this->db->get('ledgers')->result());
}

1 个答案:

答案 0 :(得分:1)

您尚未正确使用fetch方法。由于fetch在调用时无法返回数据,因此您需要提供success回调来填充模板:

var self = this;
app.ledgers.fetch({
    success: function(model, response, options) {
        $("#container-left").html(self.template({ledgers: model}));
    }
});

_.each函数本身不会返回任何内容,因此当您输出未完成的返回值时,您将无法返回。

您需要使用<%= name %>

输出函数内的数据
<% _.each(ledgers, function(data){  %> <%= name %> <% }) %>

演示JSFiddle