2012-09-12 83 views
2

夾具適配器是否有提交方法?它有什麼作用? 根據我的理解,store.commit()在與REST適配器一起使用時會放入API調用。灰燼數據夾具適配器

我可以用夾具適配器使用isLoaded屬性嗎?

基本上我有2個記錄在我的叫xy控制器和具有y型的多條記錄的屬性內容。下面 咖啡代碼:

someMethod: (-> 
    content.removeObject(y) 
).('x.isLoaded') 

anotherMethod: -> 
    //modify x 
    Application.store.commit() 

當我打電話anotherMethod它更新x和運行提交在商店,因此someMethod被調用。 我的實際應用運行正常,但在測試的情況下someMethod從內容和商店中刪除記錄y。 是否isLoadedcommit不適用於夾具數據存儲?

回答

8

是的,有一個提交方法,它可以通過DS.Store或DS.Transaction訪問。

這裏有一個fiddle,它有一些很好的代碼,可以快速顯示帶有燈具的CRUD。

window.App = Ember.Application.create(); 

App.store = DS.Store.create({ 
    revision: 4, 
    adapter: 'DS.fixtureAdapter' 
}); 

App.Person = DS.Model.extend({ 
    id: DS.attr('number'), 
    name: DS.attr('string') 
}) 

App.Person.FIXTURES = [ 
    {id: 1, name: 'Fixture object 1'}, 
    {id: 2, name: 'Fixture object 2'} 
]; 

App.people = App.store.findAll(App.Person); 
App.store.createRecord(App.Person, {id: 1, name: 'Created person'}); 

App.personView = Em.View.extend({ 
    isVisibleBinding: 'notDeleted', 
    notDeleted: function() { 
     return !this.getPath('person.isDeleted'); 
    }.property('person.isDeleted').cacheable(), 

    remove: function() { 
     this.get('person').deleteRecord(); 
    } 
});