2013-07-09 3 views
0

Есть ли способ запуска моей собственной функции до появления метода dojo?Переопределить метод в dojo - dojo.store.Memory

В частности, мне нужно обновить данные в dojo.store.Memory, прежде чем функция query() будет создана. Моя идея - поставить туда обратный вызов (который будет порожден перед запросом()), получить новые данные с сервера и затем установить данные в экземпляр памяти. Затем просто позвоните

this.inherited(arguments) 

Я попытался переопределить метод запроса с объявлением, но я все еще получаю некоторые несвязанные ошибки. 4 часа, но не повезло ...

Есть ли другой способ?

Благодаря

ответ

0

Да, вы можете запустить обратные вызовы до, после или вокруг любого метода. Просто используйте dojo/aspect

Что-то, как это должно работать:

require(["dojo/store/Memory", "dojo/aspect"], function(Memory, aspect){ 
    aspect.before(Memory, "query", function(){ 
     // do something 
    }); 
}); 

Однако для конкретного случая использования, если я правильно понял, что вы хотите иметь магазин, связанный с серверной стороны контроллера. В этом случае вы должны использовать dojo/store/JsonRest, а не dojo/store/Memory. Не нужно запускать какие-либо методы перед запросом ...

+0

Я использовал додзё/магазин/JsonRest. Благодарю. – grafa

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