2012-05-13 29 views
8

我試圖做到這一點我想有一個簡單的東西,但不知何故,我無法找到它閱讀ember-data的源代碼。設置交易後的回調一直致力於

我想一組特定的修改後觸發動作,一直致力於數據存儲。這是我當前的代碼:

var transaction = App.store.transaction(); 
user = App.get('currentUser'); 
transaction.add(user); 
user.set('name', "Michael Jackson"); 
transaction.commit(); 
App.navigate('dashboard'); 

我第一次嘗試是添加了該用戶的isDirty屬性的觀察員,但)它似乎並不習慣,更重要的B)我會在手動刪除該觀察員結束 - 這是容易出錯,如果一些例外之間的提出並沒有得到刪除,例如。

任何想法?你會如何做到這一點?

回答

6

您可以在模型中使用didCreate和didUpdate。我假設你有一個用戶模型,如下所示:

MyApp.User = DS.Model.extend({ 
    first: DS.attr('string'), 
    page: DS.attr('string'), 
    didUpdate: function() { 
    //Do something 
    }, 
    didCreate: function() { 
    //do something 
    } 
}); 
+0

哇。我覺得很愚蠢。以前沒有找到這個:| - 自述文件正確! https://github.com/emberjs/data#record-lifecycle 謝謝! – josepjaume

+7

事情是,這個邏輯不屬於模型本身。它應該屬於那個特定的上下文。 灰燼近期推出的一次性事件的回調可能是在這種情況下非常有用:https://github.com/emberjs/ember.js/commit/1809e65012b93c0a530bfcb95eec22d972069745#L0R19 所以我可以很容易地: model.one ('didCreate',function(){whatever}); – josepjaume

+2

我想創建一個全局的AJAX加載器圖像,只有在發生提交時纔會滾動,適用於任何模型。如何才能做到這一點? –

相關問題