我已经走过了使用Angular2但编写ES5代码的道路,这意味着我找到的示例和指南通常必须从与TypeScript相关的答案中翻译出来。
有人可以帮助我使用ES5版本:
引导应用程序。在TypeScript中,我看到它完成了:
import {WORKER_APP_PLATFORM, WORKER_APP_APPLICATION} from "angular2/platform/worker_app";
import {platform} from "angular2/core";
platform([WORKER_APP_PLATFORM]).application([WORKER_APP_APPLICATION]).bootstrap(myApp)
访问web_workers组件:
import {Component} from 'angular2/web_worker/worker';
@Component({ ... ])
我认为后者可以通过调用
来实现ng.web_worker.worker.Component({ ... })
但似乎并非如此:ng.web_worker未定义。
问题可能是我似乎无法正确包含web_worker / ui.js。当我包含它而不是bundle / angular2-all.umd.js时,我只收到有关require undefined的错误消息。当我在我的项目中明确包含RequireJS时,我得到了许多其他错误。
任何帮助将不胜感激!
答案 0 :(得分:2)
我可以问一下,你为什么要用ES5做这件事?如果您不喜欢Typescript,可以轻松使用SystemJS和ES6。打字稿与ES6几乎完全相同。
如果您仍想使用ES5,则需要将导入更改为require calls:
var WORKER_APP_PLATFORM = require("angular2/platform/worker_app").WORKER_APP_PLATFORM;
var WORKER_APP_APPLICATION = require("angular2/platform/worker_app").WORKER_APP_APPLICATION;
var platform = require("angular2/core").platform;
platform([WORKER_APP_PLATFORM]).application([WORKER_APP_APPLICATION]).bootstrap(myApp)
另一个例子:
var Component = require('angular2/web_worker/worker').Component;
你明白了。您也不需要RequireJS ...您可以使用SystemJS。您应该像这样导入主文件:
System.import("main")
SystemJS将解析所有require调用async,但在代码中,require调用看起来是同步的。