0

コントローラーの 2 つの配列に基づいて 2 つのリストをレンダリングしています。最初の配列の内容はすぐに追加されますが、2 番目の配列は 500 ミリ秒の遅延後に入力されます。上部のリストは期待どおりにスクロールしますが、2 番目 (遅延) のリストはそうではありません。遅延は、Ember データを介した ajax リクエストによるコンテンツの読み込みをシミュレートします。これは同じ効果があります。手がかりはありますか?

コードはこちらから入手できます: http://jsbin.com/owejoz/5/

リストは次のように表示されます。

<div class="content">
    <div class="content_list" data-scrollable="x">
        {{#each content1}}
            <div class="list_item">{{name}}</div>
        {{/each}}
    </div>
</div>
<div class="content">
    <div class="content_list" data-scrollable="x">
        {{#each content2}}
            <div class="list_item">{{name}}</div>
        {{/each}}
    </div>
</div>

JavaScript コードは次のとおりです。

App.IndexController = Ember.ArrayController.extend({
   content1: [],
   content2: []
 });

App.IndexRoute = Ember.Route.extend({
    setupController: function(controller) {
        var content1 = [];
        var content2 = [];
        for (var j = 1; j < 5; j++) {
            content1.push({name: "Item " + j});
        }
        controller.set('content1', content1);


        setTimeout(function () {
            for (var i = 1; i < 5; i++) {
                content2.push({name: "Delayed item " + i});
            }
            controller.set('content2', content2);

        }, 500);
    }
});
4

1 に答える 1

0

に変更setTimeoutEmber.run.laterます。

Ember.run.later(function () {
      for (var i = 1; i < 5; i++) {
        content2.push({name: "Delayed item " + i});
      }
      controller.set('content2', content2);

    }, 500);
于 2013-07-19T23:07:43.510 に答える