0

/START 说明原因

我正在进行“加载更多”类型的交互:用户进入页面底部,我加载更多内容。

由于我正在使用一个将内容格式化为“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 绑定如何在内部工作,因为我认为变形正在这样做。

4

1 回答 1

1

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

例如

MyList = Ember.CollectionView.extend({
             itemViewClass: 'App.ListItem',
             didInsertElement: function(){
                  view.$().jqueryPlugin({ ... })
             }
         })
于 2012-08-24T00:11:37.293 回答