我遇到的问题是,我想为/edit/:id
路由和/add
路由呈现相同的表单模板。后者应该为表单提供空输入,第一个应该使用对象的现有属性填充输入字段,让我们说它是一个帖子。
保持干燥我不想将模板粘贴到新模板中。
为实现这一目标,我做了以下工作:
<template name="addOrEditPost">
{{#if this.post}}
{{#with this.post}}
{{/if}}
<form>
<input type="text" value={{#if name}}{{name}}{{/if}} ...>
...
</form>
{{#if this.post}}
{{/with}}
{{/if}}
</template>
我的想法是,只为模板提供一个上下文,如果上下文本身存在(如果它存在,我们就会编辑&#39;如果没有,我们会在&中#39;添加&#39;。)
但这会导致
=> Errors prevented startup:
While building the application:
client/views/admin/addPost.html:6: Expected tag to close with, found if
...{#with this.post}} {{/if}} <form id="...
^
那么如何在不重复整个模板和表单的情况下实现这一目标呢?提前谢谢!
修改
我必须提到它没有{{with}}
- 上下文:当我写
<input type="text" value={{#if this.post.name}}{{this.post.name}}{{/if}} ...>
它正在运作。但是,由于表单有大约50个输入字段,因此上下文会更清晰......
答案 0 :(得分:0)
好的,我想出了一个我自己的解决方案:
<template name="addOrEditPost">
{{#if this.post}}
{{> form this.post}}
{{else}}
{{> form}}
{{/if}}
</template>
如果有帖子,我可以在{{whatever}}
- 模板中使用form
调用其属性,因为this.post
作为参数传递给模板并作为其上下文。< / p>
如果您有任何想法如何改善这一点,请分享您的想法。感谢。