需要 类 来自变量值的 AMD 样式?
Require Classes in AMD Style From a Variable Value?
我有 100 多个 classes,根据用户的选择,我必须从中要求 Dojo class。简而言之,我必须根据用户选择的字符串值要求 Dojo class。
例如,如果用户选择 truck 图标,我会得到 truck 并且我有一个 class 名为 卡车.
同步加载器样式可以像
一样加载它
var userSelection = "Truck";
var myVeh = require("Vehicles/"+userSelection);
var veh = new myVeh('Truck 4', 15000);
veh.honk();
Dojo 最佳做法建议使用 AMD 加载程序,以确保在使用前 classes 已加载。
require([
"Vehicles/Truck",
"dojo/domReady!"
], function(
Truck
) { ...... });
我想坚持使用 AMD 风格加载,但是
我如何要求 class AMD 风格的变量值用于回调?
如果我使用第一种非 AMD 方法加载会怎样?优点和缺点是什么?*
我试过了
Use dynamic variable names in JavaScript and Dynamic variables names in javascript。他们都建议 window 和 [] 方法,但 none 对我有用。
我正在使用 Dojo 1.10.4
01) 您可以使用 require
要求您的 dojo classes(在下面的示例模块 Truck.js 中),在模块加载后执行回调作为参数传递给您道场 class.
下面是演示 require
和回调函数的示例。
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
的更多信息:
https://dojotoolkit.org/reference-guide/1.10/dojo/require.html
我有 100 多个 classes,根据用户的选择,我必须从中要求 Dojo class。简而言之,我必须根据用户选择的字符串值要求 Dojo class。
例如,如果用户选择 truck 图标,我会得到 truck 并且我有一个 class 名为 卡车.
同步加载器样式可以像
一样加载它var userSelection = "Truck";
var myVeh = require("Vehicles/"+userSelection);
var veh = new myVeh('Truck 4', 15000);
veh.honk();
Dojo 最佳做法建议使用 AMD 加载程序,以确保在使用前 classes 已加载。
require([
"Vehicles/Truck",
"dojo/domReady!"
], function(
Truck
) { ...... });
我想坚持使用 AMD 风格加载,但是
我如何要求 class AMD 风格的变量值用于回调?
如果我使用第一种非 AMD 方法加载会怎样?优点和缺点是什么?*
我试过了 Use dynamic variable names in JavaScript and Dynamic variables names in javascript。他们都建议 window 和 [] 方法,但 none 对我有用。
我正在使用 Dojo 1.10.4
01) 您可以使用 require
要求您的 dojo classes(在下面的示例模块 Truck.js 中),在模块加载后执行回调作为参数传递给您道场 class.
下面是演示 require
和回调函数的示例。
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
的更多信息:
https://dojotoolkit.org/reference-guide/1.10/dojo/require.html