2013-06-20 2 views
2

Я новый ученик на Backbone JS и столкнулся с проблемой.Backbone JS - получить атрибуты

У меня есть кнопка на веб-странице. После нажатия кнопки, атрибут «сбщ» будет выводить на

<script> 
    var m = Backbone.Model.extend({ 
     initialize: function(options){ 
      console.log("A view item is created"); 
     }, 
     default: function(){ 
      return{ 
       msg: "hello world", 
       num: 1000 
      }; 
     } 
    }); 

    var v = Backbone.View.extend({ 
     el: $("body"), 
     events: { 
      "click #b": "outputMsg" 
     }, 
     outputMsg: function(model){ 
      $("#d").append(model.get('msg')); 
     } 
    }); 

    var test = new v; 
</script> 

Но отладчик показывает, что существует проблема на $ («# d»). Присоединять (model.get («сбщ»)) ;

Как его решить? Благодаря!

ответ

1

outputMsg не получит вашу модель в качестве аргумента. Вы должны указать ссылку на свою модель при создании вашего представления. Кроме того, вы не создавали экземпляр какой-либо модели. Так ...

var v = Backbone.View.extend({ 
    el: $("body"), 
    events: { 
     "click #b": "outputMsg" 
    }, 
    outputMsg: function(){ 
     this.$("#d").append(this.model.get('msg')); // get the model with this.model 
     // also, use this.$, the scoped version of $: http://backbonejs.org/#View-dollar 
    } 
}); 

var test = new v({model: new m}); // give a reference to a model to your view 
1

@ Ответ Loamhoof является правильным. Вы знаете, когда вы пишете

outputMsg: function(model){ 
    $("#d").append(model.get('msg')); 
} 

здесь ваш model будет как e (событие), событие щелчка #b

Смежные вопросы