Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript meteor.js铁路由器:防止静态模板重新渲染和故障?_Javascript_Templates_Meteor_Iron Router - Fatal编程技术网

Javascript meteor.js铁路由器:防止静态模板重新渲染和故障?

Javascript meteor.js铁路由器:防止静态模板重新渲染和故障?,javascript,templates,meteor,iron-router,Javascript,Templates,Meteor,Iron Router,我有一个全局模板: <template name="layout"> {{> header}} {{> primaryNav}} {{yield 'banner'}} {{yield}} {{> footer}} {{> deleteConfirmModal }} <span class="responsive-state"></span> </template> 一切都很顺利。我可以点击来回通过我的标题链接和导航链接没有

我有一个全局模板:

<template name="layout">
{{> header}}
{{> primaryNav}}
{{yield 'banner'}}
{{yield}}
{{> footer}}
{{> deleteConfirmModal }}
<span class="responsive-state"></span>
</template>
一切都很顺利。我可以点击来回通过我的标题链接和导航链接没有故障。但如果我添加一个数据上下文:

@route 'blog',
    path: '/blog/'
    data: ->
        blogPosts: BlogPosts.find({}, {date: -1, time: -1}) 
在提供数据上下文时,每当我导航到提供了数据上下文的路线或从该路线离开时,嵌套在布局模板中的所有模板都会重新呈现,这会由于删除然后替换的样式类而导致出现故障。如果我路由到不需要(也未提供)数据上下文的任何其他路径,则静态模板不会重新呈现


在为特定路由提供数据上下文时,是否有方法防止某些静态模板重新呈现?

如果Meteor处于当前状态,您可能应该依靠呈现来破坏大部分内容

对于iron router,
数据
存储在
反应变量
中,它确保对
数据
的任何更改都会导致
布局模板
重新渲染(这可能是过于简化的解释)

您可以:

  • 删除添加时设置动画的样式
  • 尝试使用preserve使元素保持得体。(注意:它只保留元素引用,所有值/属性都会根据模板生成的元素重置)
  • 等待meteor 1.0,或者使用一个新的模板渲染预览“修补”DOM,而不是在渲染中重新插入每个元素

是否有任何明确的方法来呈现版面模板之外的模板,并且仍然使用iron router来处理动态内容?”调用“模板呈现-例如,
var html=templates.blog({someData:true})
()。您还可以尝试使用
{{constant}
帮助程序来防止重新呈现
@route 'blog',
    path: '/blog/'
    data: ->
        blogPosts: BlogPosts.find({}, {date: -1, time: -1})