我不相信这是Ember.js: Prevent destroying of views重复。我发现的其他相关问题已过时。
如果后来变得过时,我使用Ember 1.7.0和Handlebars 1.3.0。
语境的问题:
正如标题状态,我想知道如何在不破坏他们的观点之间转换。用queryParams
做不是解决我的问题。
我创建具有以下嵌套视图计算器:
>>Calculator View
>>Report View (hasMany relationship to Calculator)
--School Partial (I am using queryParams here)
我能够在Report
意见就好了不会破坏我的School
部分之间进行导航,因为我使用queryParams
和使用displaySchoolPartial
布尔值显示/隐藏部分。下面的示例:
报告模板(剥离,只显示重要组成部分):
<script type="text/x-handlebars" data-template-name="calculator/report">
...
{{#link-to "calculator.report" (query-parameters displaySchoolPartial="true")}}
{{render "_school"}}
</script>
学校模板(也剥了下来):
<script type="text/x-handlebars" data-template-name="_school">
{{#with controllers.calculatorReport}}
<div {{bind-attr class=":schoolPartialWrapper displaySchoolPartial::hide-element"}}>
...
</div>
{{/with}}
</script>
可正常工作。如前所述,在不同的Report
视图和School
部分之间导航不会破坏视图。
问题:导航到Calculator
视图时
我的问题来了,Report
视图被破坏,然后破坏了我的School
视图。我不想也用queryParams
来取代我的Report
的意见。
我需要确保视图不被破坏的原因是因为我在School
部分中有3000个学校的选择框。重新渲染它需要很长的时间。简单地显示/隐藏Report
视图将会是一个更好的用户体验。
我同意你的第一句话100%。我已经改变了我的实现。我只是想出于好奇而想知道。 – jperezov 2014-09-12 11:51:33
尽管关于“{{render}}”的使用,我已经在'School'部分使用了它。如果我将它用于“Report”部分,我将如何定义路线?它是否在通常的'App.Router.map'函数中工作? – jperezov 2014-09-12 11:52:36