获取在#each ember模板助手中呈现的内容,而不使用#each内容绑定

时间:2012-07-29 17:27:08

标签: ember.js handlebars.js

/ START描述原因

我正在加载更多'交互类型:用户获取页面底部,我加载更多内容。

我正在使用插件格式化内容,并采用“pinterest-style”格式。 (砌体),我需要接受休息呼叫的输出,使用余烬视图格式化,并且我做了类似的事情:

<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脚本会进入,并且随后会加载更多&#39;,内容会被插入到#list中,此外还会进入#hidden格即可。 那是因为我复制了整个车把。

所以我摆脱了容器标签,我认为是包装控制器内容绑定的那个,但即使从我传递给#list的内容中剥离它,#list仍然会自动更新一个&#39;加载更多&#39;被称为。

我知道这是一个肮脏的hackish事情,但为了提高客户的表现,我必须采取类似的方式。

/ 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绑定是如何在内部工作的,因为我认为变形就是这样做的。

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用CollectionView并通过didInsertElement回调调用插件?

e.g。

MyList = Ember.CollectionView.extend({
             itemViewClass: 'App.ListItem',
             didInsertElement: function(){
                  view.$().jqueryPlugin({ ... })
             }
         })