2014-09-03 3 views
0

Я работаю над приложением, использующим ember.js для разработки интерфейса UI. Приложение требует, чтобы все действия выполнялись в всплывающем модальном окне. Поэтому я создаю один объект со всей необходимой javascript-моделью, которая будет показана на этой всплывающей модели. Это работает нормально, но когда мы находимся в этом модальном всплывающем меню, если мы изменим содержание модели javascript, последний контент модели не будет показан в списке. Фрагмент кода следующим образом: Java-модель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, который я использую, отправляет вызов веб-службы сервера, чтобы удалить эту запись, как этого избежать и просто удалить запись из модели, доступной в магазине.

ответ

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

спасибо большое, это решает проблему с вызовом удаления, но все еще неспособно заполнить запись, которую я нажал для хранения. Я попробовал обновление вместо push, все еще бесполезно. – kavinder

+0

Возможно, вам понадобится магазин для этой записи, вызвав find по id – Kingpin2k

+0

его там в магазине, он нажимает его. Я пробовал: var someObject = self.store.all ('modelToShow'); \t \t \t \t \t это.set ('tableContent', someObject); это работает для меня сейчас – kavinder

Смежные вопросы