2014-09-03 139 views
0

我正在使用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服务调用来删除那条记录,如何避免这种情况,并且只从商店中可用的模型中删除记录。

回答

1

store.unloadRecord(modelToShow);将从商店只

http://emberjs.com/api/data/classes/DS.Store.html#method_unloadRecord

我不认为推着记录,并将其装入商店中删除它,我认为它只是缓存它,你可以尝试之后,你找到记录推它。

self.store.push('modelToShow', { 
     id : 2, 
     name : 'radhe',      
     label : 'new label' 
    }); 
    self.store.find('modelToShow', 2); 
+0

非常感谢很多人,这解决了删除调用问题,但仍然无法填充我推入的记录存储。我尝试更新而不是推送,仍然没有用。 – kavinder 2014-09-03 05:10:40

+0

您可能需要通过在店内拨打查找号码 – Kingpin2k 2014-09-03 05:24:52

+0

找到该记录的主要商店,这是推动它。我试过了: var someObject = self.store.all('modelToShow'); \t \t \t \t \t this.set('tableContent',someObject); 这现在正在为我工​​作 – kavinder 2014-09-03 09:29:20

相关问题