0

私はBackbone.jsを初めて使用し、表示に割り当てられたデータセットを持っていますが、データを取得できませんが、コードの何が問題になっているのか誰かに教えてもらえますか?

コード:

var model = Backbone.Model.extend({
    data:[
        {text:'Google',href:"http://www.google.com"},
        {text:'Yahoo',href:"http://www.yahoo.com"},
        {text:'Bing',href:"http://www.bing.com"}
    ]
});

var View = Backbone.View.extend({
    initialize:function(){
       this.render();
    },
    render:function(){
         var data = this.model.get('data');
        console.log(data);    
    }
});

var myView = new View({model:model});

私が得ているエラーはここにあります:

TypeError: this.model.get is not a function
[Break On This Error]   

var data = this.model.get('data');
4

1 に答える 1

3

モデルを実際にインスタンス化する必要があります。を使用すると、プロトタイプ extendの拡張が作成されます。以下は、の新しいインスタンス作成し、それをデータで初期化します。Backbone.ModelBackbone.Model

var model = new Backbone.Model({
    data:[
        {text:'Google',href:"http://www.google.com"},
        {text:'Yahoo',href:"http://www.yahoo.com"},
        {text:'Bing',href:"http://www.bing.com"}
    ]
});
var myView = new View({ model: model });

モデル自体のタイプにデータを入れたい場合は、次のdefaultsプロパティを使用できます。

var Model = Backbone.Model.extend({
    defaults: {
        data:[
            {text:'Google',href:"http://www.google.com"},
            {text:'Yahoo',href:"http://www.yahoo.com"},
            {text:'Bing',href:"http://www.bing.com"}
        ]
    }
});
var model = new Model();
var myView = new View({ model: model });
于 2012-12-15T10:05:56.727 に答える