说我的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');
});
thx任何帮助
答案 0 :(得分:1)
当您注册部分时,源将存储在关联键下的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
});
});
请注意,注册已编译的部分内容时,您无需更改主模板中的任何内容。