У меня есть следующие три функции в представлении Backbone. Первоначально звонок updateTimer
в пределах Playback
и StartRecording
функции вызвали ошибку, которая ушла после того, как я предшествовал вызову this
, как в this.updateTimer
. Тем не менее, я ставлю демо-приложение на сервере (где код компилируется в один файл) и вызов this.updateTimer является вызывая ошибкуобласть действия `this` меняется на производственном сервере?
Uncaught TypeError: Object #<Object> has no method 'updateTimer' (repeated 28 times)
Можете ли вы объяснить, почему это может быть?
Три функции работают на моей локальной машине:
PlayBack: function(e){
e.preventDefault();
this.updateTimer(0);
SC.recordPlay({
progress: function(ms) {
this.updateTimer(ms);
}
});
},
updateTimer: function(ms){
$('.status').text(SC.Helper.millisecondsToHMS(ms));
},
StartRecording: function(e){
$('#startRecording').hide();
$('#stopRecording').show();
e.preventDefault();
SC.record({
progress: function(ms, avgPeak) {
this.updateTimer(ms);
}
});
},
С консоли сервера производства
,PlayBack: function(t) {
t.preventDefault(), this.updateTimer(0), SC.recordPlay({progress: function(t) {
this.updateTimer(t)
}})
},updateTimer: function(t) {
$(".status").text(SC.Helper.millisecondsToHMS(t))
},StartRecording: function(t) {
$("#startRecording").hide(), $("#stopRecording").show(), t.preventDefault(), SC.record({progress: function(t) {
this.updateTimer(t)
Uncaught TypeError: Object #<Object> has no method 'updateTimer' (repeated 28 times)
}})
спасибо, я должен был это знать, но почему ошибка не срабатывает на моей локальной машине? – Leahcim
@ Leahcim: Этот код действительно не должен работать на локальной машине. Возможно, ошибка осталась незамеченной или что код почему-то не был вызван? –