覆盖dojo中的方法 - dojo.store.Memory

时间:2013-07-09 16:00:08

标签: dojo

在生成dojo方法之前,有没有办法运行我自己的函数?

具体来说,我需要在生成query()函数之前刷新dojo.store.Memory中的数据。我的想法是放置一个回调(将在query()之前生成),从服务器获取新数据,然后将数据设置为Memory实例。然后打电话

this.inherited(arguments)

我已尝试使用declare覆盖查询方法,但我仍然遇到一些无关的错误。 4个小时但没有运气......

还有另一种方法吗?

由于

1 个答案:

答案 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。在查询之前无需触发任何方法...