我用这个帮手,请检查是否图像的存在与否:车把和异步调用
Handlebars.registerHelper('checkLogo', function(url) {
UrlExists(url, function(status){
if(status === 200){
return new Handlebars.SafeString(url)
}
else if(status === 404){
console.log('no logo found');
}
});
});
function UrlExists(url, cb){
$.ajax({
url: url,
dataType: 'text',
type: 'GET',
complete: function(xhr){
if(typeof cb === 'function')
cb.apply(this, [xhr.status]);
}
});
}
我把它(用URL作为ARG)在我的模板是这样的:
<img src="{{checkLogo logo}}"/>
林期待{{checkLogo logo}}
被替换的网址,但没有得到返回。这可能是异步行为,因为它必须以不同的方式处理?
谢谢
我很确定Handlebars根本不支持异步助手。另见[这个问题](https://github.com/wycats/handlebars.js/issues/717)。 – robertklep
好的,谢谢你,我猜我必须找到另一种方式:) – user2915962