是否可以从Underscore模板中获取DOM元素,并将其用作另一个模板?
我的应用程序需要呈现一个包含项目和摘要循环的文档。我需要偶尔重新渲染仅摘要或几个项目,因此无法只重新渲染整个文档。
然而,我希望在对于应用程序用户来说,创建自己的文档模板变得简单,并且认为在一个文件中保存所有内容会更容易。
我正在尝试使用类似以下的东西:
<script type="text/template" id="document-template"></script>
现在,我可以轻松地执行以下代码 documentTemplate = _.template($('#document-template').html());
将其转换为文档模板,但我也想将摘要部分和列表项都转换成模板。
我是否可以这样做:
var summaryTemplate = _.template($('#document-template #summary').html());
var itemTemplate = _.template($('#document-template .items li').html());
顺带一提,我是使用jQuery的$.get方法从外部文件加载模板的。这样我将得到整个document-template字符串。然后,我只需要执行documentTemplate = _.template(loadedString);
。
现在,如果我可以从字符串中提取#summary元素,那么它应该可以工作。但是当我尝试将字符串转换为DOM元素(var domElement = $(loadedString)
)时,就无法再识别<%= %>标记了。