2

所以我有这个简单的要求:

require(['app/'+url,'dojo/text!content/'+url], function(module,template){
        if(module.init){
                module.init({
                        container: panel, 
                        containerId: 'contentTabs_' + idOp,
                        template: template
                });
        }
});

但是模板可能不存在(有时会存在)。所以无论发生什么,我都希望我的 require 回调被执行。

AMD 的方法是什么?

多谢你们。

4

1 回答 1

1

而不是使用dojo/text!,编写自己的插件:

require(['foo/maybe!'+url], function(maybeTemplate) {
  if (maybeTemplate === undefined) {
    // it's there
  } else {
    // it's not there
  }
}

foo/maybe必须解析为具有load : function (id, require, callback)成员的对象。

load(
  id,        // the string to the right of the !
  require,   // AMD require; usually a context-sensitive require bound to the module making the plugin request
  callback   // the function the plugin should call with the return value once it is done
) -> undefined

您可以使用 XHR 调用来获取资源并解决undefined404 错误。

于 2012-08-06T15:56:49.043 回答