1

私はbackbone.jsの非常に基本的なレベルです.bodyにいくつかの要素を追加しようとしています.コード?

私が得ているエラー:

"Uncaught ReferenceError: age is not defined"

HTML(テンプレート):

<script id="person" type="text/template">
    <strong><%= name %></strong><sup><%= age %></sup>
</script>

関数:

(function($){

var Model = Backbone.Model.extend({
  defaults:{
      name:'default name',
      age:'default age'
  }
});

var Col = Backbone.Collection.extend({
    model:Model    
});

var PersonView = Backbone.View.extend({
    tagName:'li',
    template:_.template($('#person').html()),
    initialize:function(){
        this.render();
    },
    render:function(){
        $('body').append(this.$el.html(this.template(this.model.toJSON())));
    }
});

var ncol = new Col({model:[{name:'abc',age:1},{name:'cdf',age:2},{name:'ghi',age:1}]});

var persons = new PersonView({model:ncol});

})(jQuery)

誰でも私の問題を整理するのに役立ちます..?

4

1 に答える 1

3

コレクションを正しく初期化していません。Collectionコンストラクターは、初期モデルをオブジェクトではなく配列として想定しています。したがって、代わりに:

new Col({model:[
    {name:'abc',age:1},
    {name:'cdf',age:2},
    {name:'ghi',age:1}
]});

そのはず:

new Col([
    {name:'abc',age:1},
    {name:'cdf',age:2},
    {name:'ghi',age:1}
]);

これが特定のエラーの原因である場合とそうでない場合がありますが、少なくともこれは深刻な混乱を引き起こします。

于 2013-01-16T10:35:59.043 に答える