gpt4 book ai didi

javascript - 具有异步数据的 handlebar.js 助手

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:59 25 4
gpt4 key购买 nike

我想知道如何使用同步数据和 Handlebars 助手。我想将 cms 消息加载到单页应用程序,我尝试了以下方法但无法实现。

请看下面的代码。

    function loadCmsMessage(key) {

var cms = {
"msg.001": "Hello {0} {1}"
};

var deferred = $.Deferred();
setTimeout(function () {
var msg = cms[key];
deferred.resolve(msg);
}, 1000);

return deferred.promise();
}

Handlebars.registerHelper('cms', function (key, arr) {

var promise = loadCmsMessage(key);

promise.done(function (str) {
str = Handlebars.Utils.escapeExpression(str);

if ($.isArray(arr)) {
$.each(arr, function (i) {
var safeStr = Handlebars.Utils.escapeExpression(arr[i]);
str = str.replace("{" + i + "}", safeStr);
});
}

var result = '<span class="cms-data">' + str + '</span>';

return new Handlebars.SafeString(result);
});

});

$(document).ready(function () {
var template = Handlebars.compile($("#myTemplate").html());
$("#wrap").html(template({
"person": ['Jane', 'Fonda']
}));
});

最佳答案

你不能。 return 语句位于 Promise 的内部函数中。 Handlebars 助手不允许异步。

关于javascript - 具有异步数据的 handlebar.js 助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20716240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com