2013-10-08 3 views
0

Я использую backboneJS model.on ('change:attribute',functionName(someParameter)) слушать изменение атрибута модели и вызвать несильно с заданным параметром. Но проблема, с которой я столкнулась, заключается в том, что функция вызывается изначально даже тогда, когда в модели нет изменений. После этого, даже когда модель изменяется, функция не вызывается. Я провел несколько испытаний и выяснил, что без параметра, если я позвонил ('change:attribute',functionName), события были произведены правильно. Я не понимаю, в чем проблема. Может ли кто-нибудь помочь, поскольку я думаю, что мне не хватает чего-то очень элементарного здесь. И подход к такой проблеме был бы очень оценен. Благодарю.model.on («изменение», функция()) не работает должным образом

+0

Можете ли вы поделиться ссылкой на скрипку ?? – Shashank

+0

лучше показать скрипку –

ответ

2

Метод .on() ожидает, что вы передадите функцию или метод обратного вызова, которые будут вызываться для обработки события. Но в первом примере вы попытались передать результат этого обратного вызова.

Таким образом, внутри него будет выполнено yourCallback.call(...) или yourCallback.apply(...). Очевидно, что он не смог выполнить метод non-function .call().

Но вы можете обернуть вызов метода в анонимную функцию, хотя если вам это действительно нужно. Например, если вам нужно использовать это значение someParameter:

var MyView = Backbone.View.extend({ 
    // ... 
    myMethod: function(someParameter) { 
     this.model.on('change:attribute', function() { 
      functionName(someParameter); 
     }); 
    } 
}); 
+0

Спасибо за помощь. Это была очевидная ошибка с моей стороны, теперь, когда я это вижу. – NehaN

Смежные вопросы