是否可以这样做:
define( function( require ){
var path = 'json!/app/pagelang/login';
var appLang = require(path),
而不是:
define( function( require ){
var appLang = require('json!/app/pagelang/login'),
从我的测试中不可能,因为它导致以下控制台错误:
未捕获错误:模块名称“json!/ app / pagelang / login_unnormalized2”尚未加载上下文:_
答案 0 :(得分:1)
是的,您只需要稍微改变一下语法:
define( function( require ){
var path = 'json!/app/pagelang/login';
require([path], function(appLang){
// Do stuff with appLang…
});
});
答案 1 :(得分:1)
答案实际上是“不”,你的第二个片段使用sugar syntax,它使用正则表达式在“幕后”重写代码,如下所示:
define(['json!/app/pagelang/login'], function (appLang) {
// appLang available
});
当模块名称是变量时,相同的机制不起作用,因为依赖项块需要具体的模块名称,而不是变量。因此,如@idbehold所述,您需要使用内联require
的正确异步形式:
define(function (require) {
var path = 'json!/app/pagelang/login';
require([path], function (appLang) {
// appLang available
});
});