我想在使用jQuery的UI.registerHelper('getTitle', function (type){});
添加元素时调用.append($('<h3/>', {'class': 'panel', html: "{{getTitle 'game'}}"})
函数。
输出为:{{getTitle 'game'}}
,因此不解释。
我怎样才能做到这一点?
任何帮助将不胜感激。
最佳答案
您不能以这种方式进行操作,因为{{getTitle“ game”}}不是HTML,它实际上是Spacebars语法,因此不能像这样动态地解释。
您可以做的就是将getTitle声明为一个单独的函数:
function getTitle(type){
//
}
Template.registerHelper("getTitle",getTitle);
并在您的DOM插入代码中使用它:
var html=getTitle("game");
// ... proceed with insertion via jQuery
最重要的是,通过jQuery添加HTML听起来不太流利,所以我建议您重新考虑设计并切换到基于模板的方法:
<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
}
});