如何从backbone.js中的视图访问模型数据

Wer*_*eta 7 backbone.js backbone-views backbone-model

我有一个名为person的模特:

 var person = Backbone.Model.extend({
      initialize: function(){
        console.log('cool');
      },
      defaults:{
          names:['a','k','d','s','h','t']
      }
    })
Run Code Online (Sandbox Code Playgroud)

现在我有一个观点:

var person_view = Backbone.View.extend({
   model : person,
   output: function(){
      console.log(this.model.get('names'))
   }
});
Run Code Online (Sandbox Code Playgroud)

创建了视图的对象:

var obj = new person_view()
Run Code Online (Sandbox Code Playgroud)

尝试访问名称:

obj.output()
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误:

TypeError: Object function (){ parent.apply(this, arguments); } has no method 'get'
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何正确地做事吗?我刚刚开始了解backbone.js所以请耐心等待我.

dri*_*hev 9

您必须先初始化模型,然后才能访问它:

var person_view = Backbone.View.extend({
    initialize: function() {
        this.model = new person();
    },
    output: function(){
        console.log(this.model.get('names'))
    }
});
Run Code Online (Sandbox Code Playgroud)


rjz*_*rjz 5

您不必extend在视图中传递模型,而是在构造新视图时传递它:

var person_view = Backbone.View.extend({
  output: function(){
    console.log(this.model.get('names'))
  }
});

var obj = new person_view({
  model : new person()
});
Run Code Online (Sandbox Code Playgroud)