我有一个基于 dojo 的模块,它使用 bang 自动为我加载 dojo/store/Memory。它是这样称呼的:
require( [ 'squad_builder/storeBroker!collectionStore' ],
function( collectionStore )
{
// use store...
} );
第一个 require() 调用加载存储,随后的调用从缓存中加载存储。
这很好用,但我不知道如何使 require 的内部缓存无效,这样我就可以让下一个请求用新数据加载存储。
require() 中是否有任何内置功能可以执行此操作,或者我是否需要弄乱一些内部工作(如果有,在哪里?)
编辑
在文档中它提到:
注意:dojo 加载器包含非标准函数 require.undef,它取消定义模块值。
但是当我调用它时,该方法是未定义的。在 Firebug 中查看 require() :
for( i in require )
{
console.log( 'require', i, require[ i ] );
}
require.module 有一个def()
方法,但没有undef()
一个。
编辑 2
Require.cache
似乎只包含 dojo 和 dijit 模块。自定义命名空间模块缓存在哪里?