#javascript #backbone.js #view #model
#javascript #backbone.js #Вид #Модель
Вопрос:
Я переношу приложение на backbone и не уверен, как привязать мою модель к моему представлению?
Я думаю, первый вопрос заключается в том, выполняется ли это по экземпляру за экземпляром, или это то, что я могу установить один раз, чтобы каждый экземпляр модели (определенного типа) был подключен к каждому экземпляру представления (определенного типа).
Вот мое первое предположение / попытка:
/***************************************************************************************************
*/
var ModelMediaPane = Backbone.Model.extend({
defaults: {
visible: false,
previous: null,
current: 'about'
}
});
var model_media_pane = new ModelMediaPane();
$A.log(model_media_pane.get('visible'));
var ViewMediaPane = Backbone.View.extend({
id: "mi_holder",
events: {
}
});
var view_media_pane = new ViewMediaPane({model:ModelMediaPane});
$A.log(view_media_pane.el);
Ответ №1:
У вас есть много способов сделать это.
Самый простой — когда вы создаете экземпляр представления, вы вводите модель в свое представление, передавая экземпляр модели. Как вы уже делаете. или вы можете просто создать переменную с именем ‘model’ внутри вашего представления и создать экземпляр новой модели.
Отвечая на ваш вопрос,
Если вы используете один и тот же экземпляр модели для создания экземпляров 2 представлений (любого вида). Модель будет одинаковой для ваших двух представлений. Это означает, что если ViewA и ViewB прослушивают события одной и той же модели, они оба будут реагировать на одно и то же событие.
пример:
var modelA = new ModelA();
var ViewA = new ViewA({model:modelA});
var ViewB = new ViewB({model:modelA});
Если вы что-то измените в ModelA, оба представления будут реагировать.
Это позволяет вам иметь два представления, прослушивающие два разных экземпляра одной и той же модели, для меня это не имеет смысла, но зависит от ваших правил.