2016-10-29 2 views
0

У меня проблема. Я пытаюсь передать переменное качестве шаблона в Spacebars HTML шаблона ребенка в качестве аргумента:Meteor - передающая переменная шаблона как внутренний аргумент шаблона

//Assume "var1" is a variable in a template: 
<template name='example'> 

    {{> childTemp val='hello{{var1}}'}} 

    //Pass ^^ {{var1}} as an argument? 

</template> 

Обычно выше синтаксис работает для передачи переменных внутри HTML-элемента, но это только показывает, как буквальные string 'hello {{var1})' в выводе HTML

Возможно ли передать шаблонную переменную в качестве аргумента в дочернем шаблоне/как?

+0

какова намеченная цель? Вы можете использовать '' 'helpers'''' '' '' '' '' '' '' '' '' '' и '' 'set''', а затем передать их дочернему шаблону при его рендеринге. – blueren

ответ

0

Вы можете просто использовать {{> childTemp val=var1}} синтаксис, если вы сначала сделать следующее:

Template.example.onCreated(function() { 
    this.var1 = "whatever"; 
}); 

Template.example.helpers({ 
    var1() { 
    return Template.instance().var1; 
    } 
}); 
+0

Я, в частности, подразумеваю внутри фрагмента текста, как показано выше. Переменная {{var1}} - это идентификатор, поэтому мне нужно что-то вроде «hello {{var1}}» как аргумент, который вы можете использовать со стандартными элементами HTML. –

+0

Насколько я знаю, интерполяция текста выполняется только для атрибутов элементов DOM , поэтому вы не можете сделать интерполяцию встроенной, когда вы передаете параметры дочерним компонентам. Они будут рассматриваться буквально. Вы все еще можете выполнять работу внутри помощника или внедрять глобальный помощник, который интерполирует заданную строку на основе аргументов ключевого слова. –