【发布时间】:2012-07-29 17:27:08
【问题描述】:
/开始说明原因
我正在进行“加载更多”类型的交互:用户到达页面底部,我加载更多内容。
由于我正在使用一个以“pinterest 样式”(砌体)格式格式化内容的插件,我需要获取一个 rest 调用的输出,使用 ember 视图格式化,我正在做类似的事情:
<div id="list">
</div>
<div id="hidden" style="display:none">
{{#each item in App.itemsController}}
test {{item.id}}
<br />
{{/each}}
</div>
我想做的是,load the content in the hidden div, and then pass its HTML generated content to the plugin to process in my formatted list view。
如果我只是复制#hidden 内容,Ember 脚本会进入,并且在随后的“加载更多”中,除了进入#hidden div 之外,内容还会插入到#list 中 . 那是因为我复制了整个车把。
所以我摆脱了容器标签,我认为它是包装控制器内容绑定,但即使从我传递给#list 的内容中剥离它,#list 仍然会在“加载更多”时自动更新被调用。
我知道这是一个肮脏的黑客行为,但为了提高客户端的性能,我必须采取类似的方法。
/END 说明原因
//实际问题;)
鉴于这个背景,问题是,剥离容器变形脚本标签(如下面的那些),只取其中的内容,不应该摆脱自动更新内容的功能吗?
<script id="metamorph-X-start" type="text/x-placeholder"></script>
//ALL THE CONTENT
<script id="metamorph-X-end" type="text/x-placeholder"></script>
在这些里面,我只生成了实际的内容,比如:
<script id="metamorph-9-start" type="text/x-placeholder"></script>
test <script id="metamorph-59-start" type="text/x-placeholder"></script>2873<script id="metamorph-59-end" type="text/x-placeholder"></script>
<br>
<script id="metamorph-9-end" type="text/x-placeholder"></script>
<script id="metamorph-10-start" type="text/x-placeholder"></script>
test <script id="metamorph-60-start" type="text/x-placeholder"></script>2872<script id="metamorph-60-end" type="text/x-placeholder"></script>
<br>
<script id="metamorph-10-end" type="text/x-placeholder"></script>
另一种方法是以编程方式在变量中渲染模板并对其进行处理,这肯定是一种更好的方法,但我只是想知道 #each 绑定在内部是如何工作的,因为我认为 metamorph 正在这样做。
【问题讨论】: