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);
});
它不應該被重新渲染節點...你可以提供一個工作演示?最好使用https://github.com/ractivejs/ractive-transitions-slide –
@RichHarris感謝您的快速回復以及您爲使此庫直觀而付出的所有努力。我需要很長時間才能爲您提供工作版本,但我錯過了一些重要信息。更新數據的代碼。希望你能夠幫助我解決這個問題。 – Edward