[英]How to pass a variable into a dust helper function key?
我正在創建一個灰塵幫助函數,該函數將訪問保存我的文本的全局JS對象。 我還需要能夠從灰塵幫助函數將使用的模型中傳入一個變量。 我的除塵助手看起來像...
var global = {
lesson_titles: [
"Lesson 1",
"Lesson 2",
"Lesson 3"
],
lesson1: {
a: "This is lesson1.a"
}
};
dust.helpers.global = function ( chunk, context, bodies, params ) {
var key = params.key;
var parts = key.split(".");
var current = global;
for(var i = 0; i < parts.length; i++) {
current = current[parts[i]];
}
chunk.write(current);
};
而預期的用途是在我的灰塵文件中,就像...
{@global key="lesson1.a"}
這可以正常工作,但是對於我傳入的一個模型,我有一個名為“ lesson_index”的變量。 我希望能夠在鍵中使用該變量,以便能夠正確訪問事物。 例如...
{@global key="lesson_titles.{lesson_index}"}
lesson_index
將為0、1或2,然后將根據其索引正確獲取正確的課程標題。 正確的索引是什么?
請注意-通過編寫全局助手來重新發明輪子。 Dust在Dust上下文中包含一個global
對象,該對象在參考查找期間自動訪問。 如果您需要訪問無法傳遞到上下文中的全局變量,這是可以的,但這意味着您將需要做更多的工作。
要解析字符串中的任何引用,可以使用特殊的上下文函數context.resolve
。 您只需要更改一行代碼即可:
var key = context.resolve(params.key);
此函數將使用您當前的上下文在params.key
呈現字符串,因此key
計算結果為lesson_titles.1
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.