我有一个我正在处理的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
}
});
我甚至没有访问我的自定义组件中的任何代码,只是添加引用会导致它中断。有人碰到这个吗?谷歌/ Binging一直没有帮助。
答案 0 :(得分:2)
我找到了答案。
所以在我的Javascript代码中,我有一个名称空间的声明。
在我的WinRT C#组件中,我使用的是相同的命名空间。该命名空间显然扼杀了我的JS命名空间声明。我改变了我的WinRT组件:
namespace MyApp
{
public sealed class SomeClass
{
}
}
为:
namespace MyAppUtils
{
public sealed class SomeClass
{
}
}
现在一切都很好......所以,教训:如果你使用JS和自定义WinRT组件,你(显然)不能在两者中使用相同的命名空间。