我想在使用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
  }
});

09-19 12:55