我正在使用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