我正在使用ember.js進行UI端開發的應用程序。應用程序需要在彈出的模式窗口上執行所有操作。所以我創建了一個具有所有必需的JavaScript模型的對象,以便在該彈出模型中顯示。這工作正常,但是當我們處於該模式彈出窗口時,如果我們更改了javascript模型的內容,則最新的模型內容不會顯示在列表中。的代碼片段如下:javascript的模式是 -Ember.js:如何在模態彈出窗口中顯示模型的當前內容
App.ModelToShow = DS.Model.extend({
name : DS.attr(),
label : DS.attr(),
});
所以,當我打電話從App.js模型模板,它是這樣的
obj = { modelToShow : this.store.find('modelToShow')};
this.send('openModal', 'myTemplate', obj);
模板有一個表,我展示行中「modelToShow」的所有內容。上面使用的openModal用於在obj顯示的模式窗口中打開模板。 因此,現在在這個頁面上,如果我做了一些操作,即changeContent,那麼它實際上並沒有改變它。我的操作方法如下:
App.ModelToShowController = App.ModalController.extend({
actions:{
changeContent : function(){
self.store.push('modelToShow', {
id : 2,
name : 'radhe',
label : 'new label'
});
self.store.find('modelToShow', 1).then(function (modelToShow) {
modelToShow.destroyRecord();
});
}
}
});
令我驚訝的,如果我刪除的記錄,在模型反映多數民衆贊成,但不是我推的對象,儘管這是在商店可用,如果我與Ember插件調試。而我使用的這個destroyRecord發送一個服務器Web服務調用來刪除那條記錄,如何避免這種情況,並且只從商店中可用的模型中刪除記錄。
非常感謝很多人,這解決了刪除調用問題,但仍然無法填充我推入的記錄存儲。我嘗試更新而不是推送,仍然沒有用。 – kavinder 2014-09-03 05:10:40
您可能需要通過在店內撥打查找號碼 – Kingpin2k 2014-09-03 05:24:52
找到該記錄的主要商店,這是推動它。我試過了: var someObject = self.store.all('modelToShow'); \t \t \t \t \t this.set('tableContent',someObject); 這現在正在爲我工作 – kavinder 2014-09-03 09:29:20