在生成dojo方法之前,有没有办法运行我自己的函数?
具体来说,我需要在生成query()函数之前刷新dojo.store.Memory中的数据。我的想法是放置一个回调(将在query()之前生成),从服务器获取新数据,然后将数据设置为Memory实例。然后打电话
this.inherited(arguments)
我已尝试使用declare覆盖查询方法,但我仍然遇到一些无关的错误。 4个小时但没有运气......
还有另一种方法吗?
由于
答案 0 :(得分: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。在查询之前无需触发任何方法...