2015-11-08 41 views
0

我使用Ractive渲染消息列表,就像這樣:Ractive上的變化使停止的jQuery了slideDown

   <ul class="collapsible"> 
        {{#each messages}} 
        <li> 
         <div class="collapsible-header" on-click="readNotification">{{#if read}}<span>{{title}}</span>{{else}}<strong>{{title}}</strong>{{/if}}</div> 
         <div class="collapsible-body"> 
          <p>{{body}}</p> 
         </div> 
        </li> 
        {{/each}} 
       </ul> 

沒問題的,但點擊列表中的項目時,它需要滑開,我將設置消息爲已讀。這會觸發Ractive重新呈現該節點以防止其打開。

這最好的處理方式是什麼?

編輯: 在ractive的數據由該回調,偵聽從火力地堡的child_changed事件更新。然後我將更新的對象設置爲它在索引對象中的索引位置。 ractive可能將此視爲新對象而不是更新的對象?

this.firebase.child(collectionKey).on('child_changed', function(snapshot) { 
     var collectionKey = snapshot.ref().parent().key(); 
     var obj = snapshot.val(); 
     var key = snapshot.key(); 
     var index = app.ractive.get(collectionKey).map(function(item) { 
      return item._firebaseKey; 
     }).indexOf(key); 
     app.ractive.set(collectionKey+'.'+index, obj); 
    }); 
+0

它不應該被重新渲染節點...你可以提供一個工作演示?最好使用https://github.com/ractivejs/ractive-transitions-slide –

+0

@RichHarris感謝您的快速回復以及您爲使此庫直觀而付出的所有努力。我需要很長時間才能爲您提供工作版本,但我錯過了一些重要信息。更新數據的代碼。希望你能夠幫助我解決這個問題。 – Edward

回答