0

/START理由の説明

「さらに読み込む」タイプのインタラクションを実行しています。ユーザーがページの下部に移動すると、より多くのコンテンツが読み込まれます。

コンテンツを「pinterestスタイル」(石積み)でフォーマットするプラグインを使用しているので、残り火ビューを使用してフォーマットされたREST呼び出しの出力を取得する必要があり、次のようなことをしています。

<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スクリプトが入り、その後の'load more'で、コンテンツは#hidden divに入るだけでなく、#listに挿入されます。ハンドルバー全体をコピーしたからです。

そこで、コントローラーのコンテンツバインディングをラップしていると思われるコンテナータグを削除しますが、#listに渡すコンテンツからそれを削除しても、「loadmore」が呼び出されると#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

CollectionViewを使用して、コールバックを介してプラグインを呼び出すことを検討しましたdidInsertElementか?

例えば

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