0

私はbackbone.jsを学んでいます。以下の例を書いたのですが、うまくいきません。

div 要素に名前を表示するだけです。

(function($) {

    var Item = Backbone.Model.extend({
        urlRoot: '/api/camp/1/'
    });

    var ListView = Backbone.View.extend({

        el: '#reward_view',

        initialize: function() {
            _.bindAll(this, 'render'); // every function that uses 'this' as the current object should be in here


        },

        render: function() {
            console.log(this)
            $(this.el).html('<h1>Hello' + this.model.get('name') + '</h1>');
            return this; // for chainable calls, like .render().el
        }

    });

    var reward_view = new ListView();

})(jQuery);
4

1 に答える 1

3

モデルのインスタンス化が欠落している場合、そのモデルをフェッチしてビューに渡す必要があります。その後、ビューのレンダーを呼び出す必要があります。

(function($) {

var Item = Backbone.Model.extend({
    urlRoot: '/api/camp/1/'
});

var ListView = Backbone.View.extend({

    el: '#reward_view',

    initialize: function() {
        _.bindAll(this, 'render'); // every function that uses 'this' as the current object should be in here


    },

    render: function() {
        console.log(this)
        $(this.el).html('<h1>Hello' + this.model.get('name') + '</h1>');
        return this; // for chainable calls, like .render().el
    }

});
var myItem = new Item();
myItem.fetch();
var reward_view = new ListView({model:myItem});
reward_view.render();

})(jQuery);
于 2013-11-06T23:41:46.230 に答える