我有一个把手辅助方法,它通过ajax获取一个json对象,然后我想将json格式化为html并将其注入模板.
我将html和输出构建到控制台,并正确查看输出,但是
把手助手的结果永远不会显示在模板中.
Handlebars.registerHelper("accounts_dropdown", function() {
function get_dropdown(callback){
var dropdown='Select Account';
$.ajax({
url: 'accounts',
success: function(response){
for(var i=0;i<response.length;i++){
dropdown+=' < option value="'+response[i].id+'">'+response[i].name+'</option>';
}
callback(dropdown);
}
});
}
get_dropdown(function(dropdown){
console.log(dropdown);
return new Handlebars.SafeString(dropdown);
});
});
在我的模板中我有
{{accounts_dropdown}}
这不起作用,因为您正在异步加载下拉列表.你的帮助函数需要为Handlebars返回一个值以插入到模板中,但你的助手实际上并没有返回任何东西.一种选择是同步加载它,如下所示:
Handlebars.registerHelper("accounts_dropdown", function() {
function get_dropdown(){
var dropdown='Select Account';
$.ajax({
url: 'accounts',
async: false,
success: function(response){
for(var i=0;i<response.length;i++){
dropdown+=' < option value="'+response[i].id+'">'+response[i].name+'</option>';
}
}
});
return dropdown;
}
return new Handlebars.SafeString(get_dropdown());
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2955 次 |
| 最近记录: |