【问题标题】:Override a method in dojo - dojo.store.Memory覆盖 dojo 中的方法 - dojo.store.Memory
【发布时间】:2013-07-09 16:00:07
【问题描述】:

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

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

this.inherited(arguments)

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

还有其他方法吗?

谢谢

【问题讨论】:

    标签: dojo


    【解决方案1】:

    是的,您可以在任何方法之前、之后或周围触发回调。只需使用dojo/aspect

    这样的事情应该可以工作:

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

    但是,对于您的特定用例,如果我理解正确的话,您想要的是将商店链接到服务器端控制器。在这种情况下,您应该使用dojo/store/JsonRest 而不是dojo/store/Memory。无需在查询之前触发任何方法...

    【讨论】:

    • 我使用了 dojo/store/JsonRest。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 2011-09-15
    • 2012-12-03
    相关资源
    最近更新 更多