Код: Выделить всё
(function (window) {
'use strict'
var App = window.App || {};
var $ = window.jQuery;
function FormHandler(selector) {
if (!selector) {
throw new Error('No selector provided');
}
this.$formElement = $(selector);
if (this.$formElement.length === 0) {
throw new Error('Could not find element with selector:' + selector);
}
}
FormHandler.prototype.addSubmitHandler = function (fn) {
console.log('Setting submit handler for form');
this.$formElement.on('submit', function (event) {
event.preventDefault();
var data = {};
$(this).serializeArray().forEach(function (item) {
data[item.name] = item.value
console.log(item.name + ' is ' + item.value);
})
console.log(data);
fn(data);
});
};
App.FormHandler = FormHandler;
window.App = App;
}
)(window);
Код: Выделить всё
(function (window) {
'use strict';
var FORM_SELECTOR = '[data-coffee-order="form"]';
var App = window.App;
var Truck = App.Truck;
var DataStore = App.DataStore;
var FormHandler = App.FormHandler;
var myTruck = new Truck('ncc-1701',new DataStore());
window.myTruck = myTruck;
var formHandler = new FormHandler(FORM_SELECTOR);
formHandler.addSubmitHandler(myTruck.createOrder.bind(myTruck));
console.log(formHandler);
})(window);
p>
Я подозревал, что назначаю FormHandler чему-то другому, кроме его основного метода, но, похоже, это не так, а также, поскольку это копипаста из книги, мне трудно найти другую причину ошибки.Спасибо
Подробнее здесь: https://stackoverflow.com/questions/787 ... osntructor
Мобильная версия