如何将html附加到dust.js中的某个部分?似乎没有内置的方法来做到这一点。也许某种流媒体块可以用来实现这一目标?另一个解决方案可能是一个dustjs-helper,它可以找到一个部分并附加到其中。
在将其他模板包含到父模板中时,我需要此功能在html文档的头部添加脚本和样式。
任何想法如何解决这个问题?我还接受使用实体或块而不是部分的解决方案。
答案 0 :(得分:1)
如果我理解你的话,你需要一些可以用来将动态内容注入的块! 你确实可以写一个帮手来做到这一点。
假设您有一个模板并定义了一个自定义助手
{@append someParam="someValue"/}
然后你写了助手(描述here)
(function () {
'use strict';
// load dust if not already there
dust = require('dustjs-linkedin');
// load helpers if not already done
require('dustjs-helpers')
// create our custom helper
// (note that 'append' is the name of the helper, as used in the template)
dust.helpers.append = function (chunk, context, bodies, params) {
// create a new chunk and map it to make it async
// you could also do `return chunk.write('somehtml')` if you use it sync
return chunk.map(function (chunk) {
chunk.end('<div>' + params.someParam + '</div>');
});
};
}();
如果您需要像
这样的块{@append}
some string
{/append}
您需要稍微修改一下帮助(感谢odd.ness.io):
if (bodies.block) {
return chunk.capture(bodies.block, context, function(string, chunk) {
chunk.end('This is ' + string + ' we wrapped!');
});
}
// If there's no block, just return the chunk
return chunk;
哪个应该给你:&#39;这是我们包裹的一些字符串!&#39;
注意:未经测试,只写了^^
希望这有助于欢呼。