如何在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似乎不是以这种方式工作吗?
发布于 2014-02-19 17:48:32
哦,如果我让你准确的话,你想用JavaScript来定义JavaScript吗?对吧?对于这种情况,我不认为它是否在Windows Store App上完成,但我有两个建议作为我的答案:
1)使用C#作为运行时组件来执行此操作,方法是在c#中定义一个函数并简单地在JavaScript上调用它。
参见,在C#中创建一个简单的组件。
或见:WinJS.UI Namespace
http://207.46.99.208/pl-pl/library/windows/apps/br229782#enums_section
发布于 2014-02-19 14:24:45
我可能不明白您希望从Namespace定义中得到什么,但不只是使用核心JavaScript?
window.ENUMS = {
TASK: {
SUPERVISION: 1,
DIG: 2,
MAP: 3
}
};然后像你想要的那样使用它:
callSomeFunction(ENUMS.TASK.DIG);请注意,如果您可以限制用户使用IE11 (在Win8应用程序中不太困难),那么您也可以通过const使用JavaScript常数。
https://stackoverflow.com/questions/21876173
复制相似问题