2014-09-19 50 views
1

當使用jQuery的.append($('<h3/>', {'class': 'panel', html: "{{getTitle 'game'}}"})添加元素時,我想調用UI.registerHelper('getTitle', function (type){});函數。 輸出結果爲:{{getTitle 'game'}},所以沒有解釋。 我該怎麼做?將元素添加到DOM時調用流星幫助程序函數

任何幫助將不勝感激。

回答

1

你不能這樣做,因爲{{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 
    } 
});