У меня есть файл backbone-extend.js, который я загружаю в require define в app.js. Он имеет класс Backbone.View-расширителя, определяющий несколько вспомогательных методов. Два метода отлично работают в моих представлениях, всегда ошибки с Uncaught TypeError: Object [object global] has no method 'gotoUrl'
. Почему бы этот метод не был определен, а два других работают нормально? Видите ли вы какие-либо проблемы в этом коде ...Нагрузка на базовый файл расширения, некоторые помощники работают, один не
// Filename: backbone-extend.js
define([
'jquery',
'underscore',
'backbone'
], function($, _, Backbone) {
var helpers = {
eventSyncError: function(model,response,options) {
console.log('Sync error='+response.statusText);
$('#server-message').css({'color':'red', 'font-weight':'bold'}).text(response.statusText);
},
gotoUrl: function(url,delay) {
var to = setTimeout(function() { Backbone.history.navigate(url, true); }, delay);
},
getFormData: function(form) {
var unindexed_array = form.serializeArray();
var indexed_array = {};
$.map(unindexed_array, function(n, i) {
indexed_array[n['name']] = n['value'];
});
return indexed_array;
}
}
_.extend(Backbone.View.prototype, helpers);
});
Вот код в виду, что это называет ...
eventSyncMemberSaved: function(model,response,options) {
console.log("Member saved!");
$('#server-message').css({'color':'green', 'font-weight':'bold'}).text("Member saved!");
this.gotoUrl('members',2000);
//setTimeout(function() { Backbone.history.navigate('members', true); }, 2000);
},
saveMember: function() {
var data = this.getFormData($('#member-form'));
this.member.save(data, { success: this.eventSyncMemberSaved });
},
Заранее спасибо за вашу помощь. Я застрял. не
Вы можете также разместить пример того, где вы вызываете его. Это не имеет смысла без контекста. –
@ Sushanth--: Добавлен немного кода вида, показывающего вызов метода помощника. – Locohost