Backbone和下划线不会向我显示项目的详细信息

时间:2014-07-08 07:33:21

标签: javascript jquery backbone.js underscore.js

我在json文件中加载一个对象列表并在表格中显示它们。到目前为止我没有问题,问题是要详细显示对象。要检索对象的完整版本以向对象/ id服务器(实际上是文件)发出请求并进行恢复。

我的模特:

var RecursoModel = Backbone.Model.extend({
    urlRoot: "assets/data/recursos", 

    idAttribute: 'id',
    defaults: {id: null, nome: '', tipo: ''}
});

在我的代码中router.js的详细功能如下:

    detail : function(id) {

    var recurso = new RecursoModel({id:id});
    recurso.fetch();

    var recursoDetailTemplate = _.template(this.loadTemplate('recursoModelDetail'));
    this.recursoDetailModelView = new RecursoModelDetailView({
        template : recursoDetailTemplate,
        recurso : recurso
    });         
    this.changeView(this.recursoDetailModelView);
},
changeView : function(newView) {
    if(newView && this.currentView && newView != this.currentView) {
        this.currentView.hide();
        this.currentView = newView;
        this.currentView.render();
    } else if (newView) {
        this.currentView = newView;
        this.currentView.render();
    }
},

在视图控制器中:

var RecursoModelDetailView = Backbone.View.extend({
    el : $('#contenido'),
    template : null,
    recurso : null,

    initialize : function(options) {
        this.template = options.template;
        this.recurso = options.recurso;
    },
    render : function() {
        console.log(this.recurso);
        $(this.el).html(this.template(this.recurso.toJSON()));
        return this;
    },
    hide : function() {
        $(this.el).empty();
    }       
}); 

模板:

<h3>Detail</h3>
<div>
    <p><label><%= id %></label></p>
    <p><label><%= nome %></label></p>
    <p><label><%= tipo %></label></p>   
</div>

我的问题是,在Firefox第一次进入详细信息选项卡时没有向我显示任何字段,第二次可能。使用chrome或explorer从不向我显示任何内容。 请求服务器并检索数据以及我在render函数中执行的console.log数据是否存在但未显示。可能是什么问题?

0 个答案:

没有答案