1

次のコードがありますが、モデルではなくテンプレートをレンダリングするためのビューを取得するのに苦労しています。モデルを介してハンドルバーテンプレートをレンダリングするが、コードをビューに分離したい場合は、すべて正常に機能します。

var DataModel = Backbone.Model.extend({
    initialize: function () {
        $.getJSON('js/data.json',function(data){
            $('.one-wrapper').append(Handlebars.compile($('#one-template').html())(data));
            $('.one-asset-loader').fadeOut('slow');
        });
    },

    defaults : function () {

    },

});

var StructureView = Backbone.View.extend ({
    initialize: function () {
    }
});

var structureView = new StructureView({model: new DataModel()});
4

1 に答える 1

2

を使用して、ビュー内のモデルにアクセスできますthis.model

コードは次のようになります。

var StructureView = Backbone.View.extend ({
    initialize: function () {
        _.bindAll(this);
        this.render();
        this.model.on('change',this.render);
    },
    render: function() {
        $('.one-wrapper').empty().append(Handlebars.compile($('#one-template').html())( this.model.toJSON() ));
    }
});

これは、モデルに実際にデータが含まれていると想定して機能します。これを行うには、model.urland model.fetch()(ではなく$.getJSON)を使用する必要があります

于 2012-11-12T14:53:46.320 に答える