2013-08-12 54 views
3

鑑於我有這樣的:如何在不觸發觀察者的情況下設置控制器的模型?

App.SomeController = Ember.ObjectController.extend({ 
    autosave: function(){ 
    //stuff 
    }.observes('content.text', 'content.colour', 'content.webfont') 
}); 

如何設置SomeController模型中的路線,而不會觸發自動保存?

+0

Hi @Michael。我已經回答你的問題。只要知道,你爲什麼想這樣做? –

+0

我使用epf,觀察者實現自動保存。但是,由於在epf中存在一個開放的問題,我最終不得不在觀察者中重置模型,導致無限循環的無限循環。 –

回答

6

Emberjs沒有支持至少暫停觀察員in public api

我的方法,它的問題是創建一個標誌:

App.SomeController = Ember.ObjectController.extend({ 
    _suspendAutosave: false, 
    suspendAutosave: function(fn) { 
    this.set('_suspendAutosave', true); 
    fn(); 
    this.set('_suspendAutosave', false); 
    }, 
    autosave: function(){ 
    if (this.get('_suspendAutosave')) { return; } 
    // some code ... 
    }.observes('content.text', 'content.colour', 'content.webfont') 
}); 

在一些地方:

controller.suspendAutosave(function() { 
    controller.set('content.text', 'foo'); 
}); 

這是不冷靜,但我知道的唯一途徑。我希望它有幫助。

1

或者,您可以使用:Ember.removeObserver()和Ember.addObserver()方法。

相關問題