Angular2 веб-сотрудники с ES5
Я пошел по пути использования 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 undefined.
Проблема может заключаться в том, что я, похоже, не могу правильно включить web_worker/ui.js. Когда я включаю его вместо пакетов / angular2 -all.umd.js, я получаю сообщения об ошибках, требующих undefined. Когда я явно включаю RequireJS в свой проект, я получаю кучу других ошибок.
Любая помощь будет принята с благодарностью!
Ответы
Ответ 1
Могу ли я спросить, почему вы хотите сделать это с помощью ES5? Вы можете легко использовать SystemJS и ES6, если вам не нравится Typescript. Typescript будет почти идентичен ES6.
Если вы все еще хотите сделать это с помощью ES5, вам необходимо изменить импорт для вызова:
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 разрешит все вызовы async, но в коде вызовы требуют синхронизации.