2013-12-14 95 views
1

我正在使用Ember-Data向Ember教程應用程序here添加JSON API。該應用程序的流程如下所示:當數據添加到Ember-Data模型時,刷新Ember-Data模型

  • 加載網站:應用程序通過GET請求從API中獲取待辦事項。
  • 添加待辦事項:應用通過POST請求添加新待辦事項
  • 編輯剛添加的待辦事項:失敗,因爲儘管待辦事項在數據庫中,但應用程序並不知道它,因爲它沒有得到自待辦事項發佈以來的待辦事項列表。
我在想我需要的是每次添加新的時候刷新todos列表。我試過做類似 this的東西,但它只是觀察屬性。

回答

0

只需使用一個直播實錄陣列

Takes a type and filter function, and returns a live RecordArray that 
remains up to date as new records are loaded into the store or created 
locally. 

The callback function takes a materialized record, and returns true 
if the record should be included in the filter and false if it should 
not. 

The filter function is called once on all records for the type when 
it is created, and then once on each newly loaded or created record. 

If any of a record's properties change, or if it changes state, the 
filter function will be invoked again to determine whether it should 
still be in the array. 

IE

this.store.all('post') 

this.store.filter('post', function(post){ return post.get('body').indexOf('ember')>=0;}); 

例子:

http://emberjs.jsbin.com/OxIDiVU/22/edit

+0

試過了,仍然沒有工作。也許這個問題比不同步的數據更大。 – Januzellij

+0

你如何添加一個新的記錄,原始的ajax調用?或者你正在創建一個新的記錄? (){ – Kingpin2k

+0

'createTodo:function(){ var title = this.get('newTitle'); (!title.trim()){return; } 變種待辦事項= this.store.createRecord( '待辦事項',{ 標題:標題, isCompleted:假 }); todo.save(); }' – Januzellij