2013-10-01 7 views
0

Вот что у меня внутри позвоночника модели:Как вернуть значение ключа: функции() в JavaScript

defaults: { 
    prayer_string: function(){ 
      var label_val = $("#prayer_type_label").val(); 
      console.log("Prayer_string returning: ", label_val); 
      return label_val; 
    } 
} 

Но когда я доступ к модели так:

var prayerString = model.prayer_string; 

prayString - это функция, а не return label_val.

Что мне нужно сделать, чтобы получить возвращаемое значение функции вместо самой функции?

Спасибо,

Andrew

+5

Вы хотите выполнить функцию prayerString = model.prayer_string(); Но я должен добавить, что, поместив молитву в строку hash по умолчанию, вы добавляете ее в хэш атрибутов модели. Если вы хотите получить доступ к этому методу напрямую, поместите его в список методов, с которыми вы расширяете модель. – kinakuta

+0

Вам нужно вызвать функцию, поэтому 'var prayString = model.prayer_string();'. –

+0

Не будет 'model.get ('pray_string')' получить возвращаемое значение? Я предполагаю, что вы просто ищете ценность и не хотите, чтобы она менялась динамически. – EmptyArsenal

ответ

0

Попробуйте вместо этого:

var yourModel = new (Backbone.Model.extend({ 
    prayer_string: function() { 
     var label_val = $('#prayer_type_label').val(); 
     console.log('Prayer_string returning: ' + label_val); // use + for concatenating strings 
     return label_val; 
    } 
}); 

var prayerString = yourModel.prayer_string(); // invoke the method with() 
Смежные вопросы