У меня есть два вида - вид сверху, который является верхним уровнем, и новый вид формы, который действует как дочерний элемент макета и создает внутри него. У меня есть один обработчик событий в представлении формы, который должен создать новый экземпляр моей модели в соответствии с данными из ввода.Обработчик обработчика магистралей не работает
Вот вид макета:
var LayoutView = Backbone.View.extend({
el: "#layout",
render: function (view) {
this.child = view;
if (this.child) {
this.child.remove();
}
this.$el.html(this.child.render().el);
return this;
}
});
и вот моя точка зрения формы:
var ResumeForm = Backbone.View.extend({
events: {
'click #create': 'createResume'
},
initialize: function() {
this.template = _.template($('#new-resume').html());
},
render: function() {
this.$el.html(this.template());
return this;
},
createResume: function() {
// getting values from template inputs and saving them to model
var resume = new Resume({
profession: $('#profession').val(),
firstName: $('#firstname').val(),
lastName: $('#lastname').val()
});
// saving a new model to collection instance
resumes.add(resume);
resume.save(null, {
success: function (res) {
console.log("POST resume id " + res.toJSON().id);
},
error: function() {
console.log("Failed to POST");
}
});
}
});
мой взгляд форма делает в моем макете отлично, но когда я ввожу значение и нажмите #create
кнопку, ничего не происходит - не сохраняет модель и не регистрирует ошибку ошибки из моего метода createResume
. Я подозреваю, что при визуализации представления формы в макете линия this.$el.html(this.child.render().el);
просто уничтожает все прослушиватели событий, потому что, если я добавлю эти слушатели в макет, это сработает.
Есть ли способы устранить эту проблему?
Спасибо большое, Эмилю! Это сработало отлично. Думаю, я должен прочитать документы больше. Теперь есть еще одна проблема - когда я нажимаю кнопку '# create', это вызывает мне следующую ошибку:' backbone.js: 1907. Неиспользуемая ошибка: свойство или функция «url» должны быть указаны », но это не имеет отношения к этому вопросу. – AlexNikolaev94
@ AlexNikolaev94, что ошибка связана с вашей моделью 'Resume', не имеющей свойство' urlRoot', или находящейся внутри коллекции, имеющей свойство 'url'. –
он точно существует внутри коллекции, которая имеет свойство 'url'. shoul Я удаляю его и добавляю свойство 'urlRoot' вместо модели? – AlexNikolaev94