【问题标题】:Getting the content rendered inside a #each ember template helper, without the #each content binding获取在 #each ember 模板帮助程序中呈现的内容,而不使用 #each 内容绑定
【发布时间】: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 正在这样做。

【问题讨论】:

    标签: ember.js handlebars.js


    【解决方案1】:

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

    例如

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

    【讨论】:

      猜你喜欢
      • 2015-10-15
      • 1970-01-01
      • 2012-12-01
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多