我正在寻找一种可以基于模型创建各种模板的模式。想象一下,我有下面的getDTO
函数。
export const getDTO => [
{ 'title': 'title one', 'body': 'sample paragraph one' },
{ 'title': 'title two', 'body': 'sample paragraph two' },
]
我正在使用以下下划线模板来渲染DTO。
<script type="text/template">
<h1><%= title %></h1>
<p><%= body %></p>
</script>
在我保持DTO不变之前,它可以正常工作。如果我出于任何目的更改DTO,都会中断模板的渲染。
现在的问题是,是否有任何模式可确保模板始终反映我的DTO中的更改?
答案 0 :(得分:3)
木偶有一个serializeData
方法,可作为模板和数据模型之间的层。
如果您更改了数据模型或模板中的任何内容,则可以在serializeData
中进行相应的调整,而不必同时更新两个地方。
同样,如果您不希望数据模型的更改影响模板,则可以在它们之间创建一个层。
例如,如果您更改
export const getDTO => [
{ 'title': 'title one', 'body': 'sample paragraph one' },
{ 'title': 'title two', 'body': 'sample paragraph two' },
]
到
export const getDTO => [
{ 'heading': 'title one', 'body': 'sample paragraph one' },
{ 'heading': 'title two', 'body': 'sample paragraph two' },
]
您通过以下方式更新图层
serializeData(dto){
return dto;
}
到
serializeData(dto){
return {
title: dto.heading
}
}
因此模板不会受到影响。