我正在开发一个 javascript Windows 应用商店应用程序,我需要创建一个 WinRT 组件来进行某些处理。一旦我添加对该组件的引用,我就会收到一个 JavaScript 错误:
0x800a01bd - JavaScript 运行时错误:对象不支持此操作。
这发生在包含以下内容的行上:
engine = new MyApp.Engine();
定义:
WinJS.Namespace.define("MyApp", {
Engine: WinJS.Class.define(function() {
//constructor stuff
//other stuff snipped for brevity
}
});
我什至没有访问自定义组件中的任何代码,只需添加引用就会导致它中断。有人遇到过这个吗?谷歌搜索/必应没有任何帮助。
最佳答案
我找到了答案。
因此,在我的 Javascript 代码中,我声明了命名空间。
在我的 WinRT C# 组件中,我使用相同的命名空间。该命名空间显然消除了我的 JS 命名空间声明。我从此更改了我的 WinRT 组件:
namespace MyApp
{
public sealed class SomeClass
{
}
}
至:
namespace MyAppUtils
{
public sealed class SomeClass
{
}
}
现在一切都很好......所以,教训:如果您使用 JS 和自定义 WinRT 组件,您(显然)不能在两者中使用相同的命名空间。
关于windows-8 - 引用自定义 WinRT 组件会破坏 javascript 类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12118821/