2013-02-20 1 views
2

Как связать событие изменения с моделью из представления, чтобы изменить имя и отобразить измененное имя в блоке просмотра. Триггер события backbone.js

Student = Backbone.Model.extend({ 
    initialize: function(){ 
     this.on("change:name", function(model){ 
      var name = model.get("name"); 
      alert("Changed my name to " + name); 
     }); 
    } 
}); 

var pe = new Student({ name: "sinduja", age: 20}); 
pe.set({name: 'shalini'}); 

ответ

0

Я использовал, чтобы написать свой собственный материал для реакции на двунаправленные изменения модели/представления, что немного боли обслуживания. Затем я нашел плагин Backbone.ModelBinder.

Это делает то, что вы хотите достичь глупо. Есть несколько хороших примеров на странице github readme, с которой я связал вас, поэтому мне нечего делать! Если сначала кажется немного запутанным, я бы попробовал все возможное, чтобы он работал, поскольку в конечном итоге этот плагин спасет вас бесчисленное количество часов, как это имеет место для меня.

1

Не сбрасывает события смены триггеров автоматически на model.set?

Вам нужно только зарегистрировать свое мнение на мероприятии с изменениями.

Student = Backbone.Model.extend({ 
    initialize: function(){ 
     //initialize variables 
    } 
}); 

StudentView = Backbone.View.extend({ 
    initialize: function(model) { 
     _.bindAll(this); 
     model.on("change:name",this.nameChanged) 
    }, 
    nameChanged: function(evt) { 
     console.log("name changed", evt) 
    } 

}) 

Использование:

var pe = new Student({ name: "sinduja", age: 20}); 
var sv = new StudentView(pe); 
pe.set({name: 'shalini'}); 
+0

Спасибо ... но я получаю только имя изменено, как мой выход, а не измененный name..wat SHD я сделать, чтобы получить измененное имя? – user2082957

+0

Спасибо большое ... я сделал изменения, теперь могу получить измененное имя. – user2082957

+0

У меня есть одно сомнение, но wat do u в nameChanged() - это tat u r printing jus строка «имя изменено», и еще одна вещь похожа на переменные wat, я могу инициализировать ther, так как я уже передал ее в области использования d – user2082957

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

  • Нет связанных вопросов^_^