Къде да дефинирам модела за изгледа

Разгледах някои изгледи от Backbone.js, но не виждам в кой момент се декларира кой модел е обвързан с изгледа?

Например тук къде изгледът определя кой модел е this.model? https://github.com/addyosmani/todomvc/blob/gh-pages/dependency-examples/backbone_require/js/views/todos.js


person AdrianoCelentano    schedule 22.01.2013    source източник


Отговори (1)


Когато подадете свойство model в аргумента опции към конструктора на View, Backbone автоматично го задава като view.model:

var someModel = new Model();
var view = new View({model:someModel});
console.log(view.model === someModel); // -> true

Тази функция е документирана тук.

Когато създавате нов изглед, опциите, които подавате — след като бъдат обединени във всички опции по подразбиране, които вече присъстват в изгледа — се прикачват към изгледа като this.options за бъдещи справки. Има няколко специални опции, които, ако бъдат предадени, ще бъдат прикачени директно към изгледа: модел, колекция, el, id, className, tagName и атрибути.

В примера на Todolist моделът е зададен в app.js, ред 75.

addOne: function( todo ) {
  var view = new TodoView({ model: todo });
  $('#todo-list').append( view.render().el );
},
person jevakallio    schedule 22.01.2013