Javascript 是否需要变量值中的AMD样式的类?
我有100个类,根据用户选择,我需要使用Dojo类。简而言之,我需要一个基于用户选择的字符串值的Dojo类 例如,如果用户选择一个truck图标,我得到truck,我有一个名为truck的类 同步加载程序样式可以像Javascript 是否需要变量值中的AMD样式的类?,javascript,dojo,Javascript,Dojo,我有100个类,根据用户选择,我需要使用Dojo类。简而言之,我需要一个基于用户选择的字符串值的Dojo类 例如,如果用户选择一个truck图标,我得到truck,我有一个名为truck的类 同步加载程序样式可以像 var userSelection = "Truck"; var myVeh = require("Vehicles/"+userSelection); var veh = new myVeh('Truck 4', 15000); veh.honk(); Dojo良好实践建议使
var userSelection = "Truck";
var myVeh = require("Vehicles/"+userSelection);
var veh = new myVeh('Truck 4', 15000);
veh.honk();
Dojo良好实践建议使用AMD loader,以确保在使用它之前加载类
require([
"Vehicles/Truck",
"dojo/domReady!"
], function(
Truck
) { ...... });
我想坚持AMD风格的加载,但是
如何要求在回调中使用变量值中的AMD样式的类?
如果我使用第一个非AMD方法加载会怎么样?什么是优点和缺点?*
我试过了
和。他们都建议使用window和[]方法,但都不适合我
我使用的是Dojo 1.10.4(在下面的示例模块Truck.js中),您可以使用require
要求您的Dojo类,在加载模块后,将执行一个回调,并将其作为参数传递给您的Dojo类
下面的示例演示了需要和回调函数
require('Vehicles/Truck', function(Truck){
var myTruck= new Truck('Truck 4', 15000);
});
您可以使用以下命令更动态地指定要加载的模块:
var userSelection = 'Truck';
require('Vehicles/' + userSelection, function(Truck){
var myTruck= new Truck('Truck 4', 15000);
});
02)假设您的Truck.js
是一个AMD模块,那么您的两种方法(正如您在问题中提到的)实际上都在使用AMD
加载
您可以在此处阅读有关require
的更多信息:
谢谢您的澄清。