有没有办法在生成 dojo 方法之前运行我自己的函数?
具体来说,我需要在生成 query() 函数之前刷新 dojo.store.Memory 中的数据。我的想法是放一个回调(将在 query() 之前产生),从服务器获取新数据,然后将数据设置为 Memory 实例。然后打电话
this.inherited(arguments)
我试过用声明覆盖查询方法,但我仍然收到一些不相关的错误。4小时,但没有运气...
还有其他方法吗?
谢谢
有没有办法在生成 dojo 方法之前运行我自己的函数?
具体来说,我需要在生成 query() 函数之前刷新 dojo.store.Memory 中的数据。我的想法是放一个回调(将在 query() 之前产生),从服务器获取新数据,然后将数据设置为 Memory 实例。然后打电话
this.inherited(arguments)
我试过用声明覆盖查询方法,但我仍然收到一些不相关的错误。4小时,但没有运气...
还有其他方法吗?
谢谢
是的,您可以在任何方法之前、之后或周围触发回调。只需使用道场/方面
像这样的东西应该工作:
require(["dojo/store/Memory", "dojo/aspect"], function(Memory, aspect){
aspect.before(Memory, "query", function(){
// do something
});
});
但是,对于您的特定用例,如果我理解正确,您想要的是将商店链接到服务器端控制器。在这种情况下,您应该使用dojo/store/JsonRest而不是 dojo/store/Memory。无需在查询之前触发任何方法...