我有一个基于dojo的模块,可以让我自动为我添加一个dojo / store / Memory。它被称为:
require( [ 'squad_builder/storeBroker!collectionStore' ],
function( collectionStore )
{
// use store...
} );
第一个require()调用加载存储,后续的调用从缓存加载存储。
这很好但我无法弄清楚如何使require的内部缓存无效,这样我就可以让下一个请求用新数据加载商店。
是否有任何内置于require()中的内容,或者我是否需要处理一些内部工作(如果是,那么?)
修改
在the docs中提到:
注意:dojo加载器包含非标准函数require.undef, 它取消定义模块值。
但是当我调用它时,该方法是未定义的。在Firebug中查看require():
for( i in require )
{
console.log( 'require', i, require[ i ] );
}
require.module有一个def()
方法但不是undef()
方法。
修改2
Require.cache
似乎只包含dojo和dijit模块。自定义命名空间模块在哪里缓存?
答案 0 :(得分:1)
根据dojo站点,该功能不会自动包含在“已构建”的dojo文件中。如果你看一个未压缩的dojo.js,你会在那里看到它。 从:http://dojotoolkit.org/reference-guide/1.9/loader/amd.html
下表提供了杠杆选项列表 在装载机内。第一列是定义的选项/功能 在加载器中,第二个选项是否是检测到的 feature(通过has.add())或者它只是一个选项及其默认值 值。使用“未构建”源,所有功能和选项都是 可用。如果已经构建了加载器,那么其中一些功能 可能已设置为staticHasFeatures,不可配置 了。
此处它还表示您可以通过添加一行go djconfig重新打开该功能 http://dojo-toolkit.33424.n3.nabble.com/require-undef-td3990559.html
dojoConfig = {has:{ “dojo-undef-api”:true}}