如何在WinJS中进行枚举?
我试图创建一个这样的类,例如:
(function () {
"use strict";
var TaskEnum = WinJS.Class.define(
null,
{},
// The set of static members.
{
SUPERVISION: 1,
DIG: 2,
MAP: 3,
});
var Task = new TaskEnum();
WinJS.Namespace.define("ENUMS", {
TASK: {
get: function () {
return Task;
}
}
});
})();
但是当我打电话给ENUMS.TASK.DIG
时,DIG未定义。
我甚至试过这个:
WinJS.Namespace.define("ENUMS", {
TASK: { SUPERVISION: 1, DIG: 2, MAP: 3, }
});
但是当我打电话给ENUMS.TASK.DIG
时,DIG仍未定义。
似乎Namespace.define不能以这种方式工作?
答案 0 :(得分:1)
我可能不明白你希望摆脱Namespace
定义,但不只是使用核心JavaScript?
window.ENUMS = {
TASK: {
SUPERVISION: 1,
DIG: 2,
MAP: 3
}
};
然后像尝试一样使用它:
callSomeFunction(ENUMS.TASK.DIG);
请注意,如果您可以将用户限制为IE11(在Win8应用中不那么困难),那么您也可以通过const
使用JavaScript constants。
答案 1 :(得分:1)
哦,如果我确切地知道你,你想在JavaScript中定义Enumeration
吗?
对 ?
对于这种情况,我不认为是否在Windows Store App
上使用WinJs,
但我有两个建议作为我的答案:
1)使用C#
作为Runtime Component来执行此操作,方法是在c#中定义一个函数,然后在JavaScript上调用它。
See ,Creating a simple component in C#.
2)Enumerated types in JavaScript
或参见: WinJS.UI命名空间
http://207.46.99.208/pl-pl/library/windows/apps/br229782#enums_section