2016-02-11 2 views
1

От Template.myTemplate.rendered Функция (или из других функций шаблона), я хочу вызвать другую функцию утилиты. Не знаете, как это сделать в методе Метеор.Функции вспомогательных вызовов вызова из других связанных с шаблоном функций

Я попытался

Template.myTemplate.rendered = function(){ 
    console.log("chat Interface rendered"); 
    Template.myTemplate.__helpers.get('someFunction'); 
}; 


Template.myTemplate.helpers({ 
    'isEditable': function() { 
    return Session.get('editable'); 
    }, 
    'someFunction':function() { 
    console.log("someFunctionis called"); 
    //More stuff here 

    } 
}); 

Это не работает, как ожидалось. Есть ли стандартный способ сделать это?

+0

Вы можете создать глобальную функцию и называть ее разными шаблонами – durrrr

+0

Не могли бы вы предоставить еще несколько контекстов для этого вопроса? Я думаю, вы можете использовать переменные сеанса для переключения состояния отключения кнопки вместо того, что вы пытаетесь сделать. – umesh

+0

Как мы знаем, если вы не предоставляете свою функцию 'other util ' – asingh

ответ

2

По-моему, вы неправильно используете template helpers. В общем, они используются для получения данных в шаблонах, а не для контроля элементов пользовательского интерфейса.

В результате, я рекомендую создать регулярную функцию JavaScript, а затем назвать его внутри onRendered обратного вызова:

function disableChatBtn() { 
    console.log("disableChatBtn is called"); 
    $('#btn-chat').prop('disabled', true); 
} 

Пожалуйста, обратите внимание:Template.myTemplate.rendered осуждается в Метеор версии 1.0.4.2 (и позже) , используйте Template.myTemplate.onRendered вместо этого.

Например:

Template.myTemplate.onRendered(function() { 
    console.log("chat Interface rendered"); 
    disableChatBtn(); 
}); 
+0

Если вы хотите переключить состояние кнопки, имеет смысл использовать, скажем, переменную Session для этого в шаблонных помощниках и событиях. Я определенно не исключаю этот вариант. – durrrr

+0

@ durrr: Посмотрите, это очень простой пример, когда вы переключаете кнопку, если есть другие вещи? , M спрашивает концепцию, способ ... – monda

+0

@monda Этот комментарий был посвящен управлению элементами пользовательского интерфейса. Для вашего вопроса я уже предложил создать глобальную функцию – durrrr

0

Вы можете создать метод метеора и использовать его везде в вашем коде. Вы также можете вызывать методы из других методов.

Meteor.methods({ 
    someMethod: function (param) { 
    //do stuff 
    } 
}); 

var result = Meteor.call('someMethod', param); 
Смежные вопросы