反向使用Javascript模板语言
有没有什么像模板引擎(la Mustache.js)可以在“反向”模板中进行模板化?
这意味着我提供了呈现的html和模板文件,通过引擎运行它,并从中获取数据(比如JSON结构)。
我意识到这是可以用“屏幕抓取库”来完成的事情,但我从来没有见过使用胡须风格模板的屏幕抓取库(不管这些叫做什么)。
通用解决方案不存在。 例如,您永远不能撤消以下模板:{{foo}} {{bar}},因为无法找到第一个胡须停止位置和第二个胡须停止的位置。
例如:
html: 'hello world!'
template: '{{foo}}{{bar}}'
model: {
foo: '',
bar: 'hello world!'
}
model2: {
foo: 'hello world!',
bar: ''
}
模型和模型2都从模板呈现完全相同的html,所以它们都是有效的反转。
但是,如果您为模板制定了一些规则,则可以毫不含糊地执行此操作。
规则:
这些规则似乎对纯文本非常严格,但对于xml和html,它们工作得很好(如果您只对元素和属性内容感兴趣)。 例如,如果仅使用纯文本{{}}胡须,则规则二永远不会成为问题。
例如,下面的模板可以颠倒过来,没有任何含糊之处:
<div>
<p>{{title}}</p>
<ul>
{{#list}}
<li>{{item}}</li>
{{/list}}
</ul>
</div>
但在</ ul>之前添加另一个<li>会使模板不明确(规则3)。
我还没有找到任何代码在线,所以我已经开始为此编写一个库。 但目前还没有完成,每次我研究它时,我都会发现新的局限性。 只有真正简单的模板才能正常工作(我允许的唯一胡须是{{}},{{#}}和{{/}})。
我找到了使用另一个模板系统的解决方案:https://github.com/fabiomcosta/mootools-meio-template/tree/master。 它似乎有相同的限制。
链接地址: http://www.djcxy.com/p/73525.html