2014-09-19 2 views
1

Я хочу вызвать функцию UI.registerHelper('getTitle', function (type){}); при добавлении элемента с .append($('<h3/>', {'class': 'panel', html: "{{getTitle 'game'}}"}) jQuery. Выход: {{getTitle 'game'}}, поэтому он не интерпретируется. Как я могу это сделать?Вызов функции Meteor helper при добавлении элементов в DOM

Любая помощь была бы принята с благодарностью.

ответ

1

Вы не можете продолжить этот путь, потому что {{getTitle "game"}} - это не HTML, это на самом деле синтаксис Spacebars, и он не может быть динамически интерпретирован так.

Что вы можете сделать, это объявить GetTitle как отдельную функцию:

function getTitle(type){ 
    // 
} 
Template.registerHelper("getTitle",getTitle); 

И использовать его в DOM код для вставки:

var html=getTitle("game"); 
// ... proceed with insertion via jQuery 

Самое главное, добавление HTML с помощью JQuery не звук очень метеор, поэтому я советую вам пересмотреть свой дизайн и перейти к основанию на основе шаблонов:

<template name="whatever"> 
    {{#id conditionMet}} 
    <h3>{{getTitle "game"}}</h3> 
    {{/if}} 
</template> 

Template.whatever.helpers({ 
    conditionMet:function(){ 
    // return some value based on a reactive data source 
    } 
}); 
Смежные вопросы