说我的javascript有以下部分内容:
Handlebars.registerPartial('itemcount', '<div class="row"><div class="count span1">{{count}}</div><div class="notes span4">{{notes}}</div>/div>');
并像这样使用它:
{{#each item_counts}}
{{> itemcount }}
{{/each}}
我如何在jQuery回调中使用“itemcount”部分(类似)?
$.ajax({
url: '/arc/v1/api/item_counts/',
type: 'POST',
data: {item_count:{inventory_item_id: id_val, count:count_val, date:date_val, notes:notes_val}},
dataType: 'json'
}).done(function(r){
var item_count=r.item_count;
// here is where I would want to get access to this and
//var template = Handlebars.compile(source, item_count); ????
$('.itemcount-header').after('this is after');
});
感谢任何帮助
最佳答案
注册部分时,源将存储在关联密钥下的Handlebars.partials
中。然后,您可以在运行时编译此源,并将结果函数用作常规模板:
$.ajax({
// ...
}).done(function(r){
var item_count = r.item_count;
var markup = Handlebars.compile(Handlebars.partials.itemcount, {
count: item_count
});
});
如果多次重复使用,也可以将预编译模板注册为部分模板:
Handlebars.registerPartial('itemcount', Handlebars.compile(src));
$.ajax({
// ...
}).done(function(r){
var item_count=r.item_count;
var markup = Handlebars.partials.itemcount({
count: item_count
});
});
请注意,注册已编译的部分时,无需在主模板中进行任何更改。
和演示http://jsfiddle.net/nikoshr/9La3p/
关于javascript - 从jQuery调用Handlebars部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23001550/