从主文档的iframe内的脚本中使用Angular2

时间:2016-03-09 16:32:25

标签: angularjs typescript angular angular2-directives

注意:我是Angular的新手,任何版本。

我正在尝试将一些Angular2部分添加到Web UI,否则将使用其他框架实现。在我已经(并且无法摆脱)的场景中,主文档根本没有(很多)JavaScript运行 - 所有脚本都在该文档中的iframe元素内部,由主框架管理。

我甚至没有尝试在iframe中加载Angular2,假设它不起作用。当需要(很少),我" eval"在主/根窗口上所有需要的Angular脚本向它引入Angular(一次),但是我必须在iframe中配置它的JavaScript代码,至少是它的一部分,因此,它会更简单我把它全部放在那里。在那个iframe里面我声明了" ng"成为" ng"从主窗口。这使我能够运行Angular2 5分钟快速启动并且工作正常。但是,当我开始通过指令添加更多内容时(我跟着http://www.gurustop.net/blog/2015/12/16/angular2-beta-javascript-component),这没有用。具体来说,它抛出了这个Angular2函数的异常:

打字稿:

function isValidType(value: Type): boolean {
  return isPresent(value) && (value instanceof Type);
}

实际JavaScript:

function isValidType(value) {
    return lang_1.isPresent(value) && (value instanceof lang_1.Type);
}

基本上它缺少lang_1。异常消息抱怨" class0"和" class1"。

如果我将完全相同的代码从iframe移动到主窗口,它就可以工作。另外,如果我攻击Angular2的isValidType()函数,只需返回如下的true,它也可以工作:

function isValidType(value) {
    return true;
}

我尝试将lang_1从主窗口带到iframe,但这没有帮助。

至少有人可以告诉我这里发生了什么,如果不是如何解决这个问题?谢谢!

0 个答案:

没有答案