2016-01-13 8 views
12

के साथ कोणीय 2 वेब श्रमिक मैं कोणीय 2 का उपयोग करने का एक रास्ता नीचे चला गया हूं लेकिन ईएस 5 कोड लिख रहा हूं, जिसका अर्थ है कि उदाहरण और मार्गदर्शन मुझे आमतौर पर टाइपस्क्रिप्ट से संबंधित उत्तरों से अनुवादित किया जाना चाहिए। आवेदन बूटस्ट्रेपिंगईएस 5

:

कोई मुझे का एक ES5 संस्करण के साथ मदद कर सकते हैं।

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 को ठीक से शामिल करने में सक्षम नहीं हूं। जब मैं इसे बंडल/कोणीय 2-all.umd.js के बजाय शामिल करता हूं तो मुझे केवल अपरिभाषित होने की आवश्यकता के बारे में त्रुटि संदेश मिलते हैं। जब मैं स्पष्ट रूप से अपनी परियोजना में RequJS शामिल करता हूं तो मुझे अन्य त्रुटियों का एक गुच्छा मिलता है।

किसी भी मदद की सराहना की जाएगी!

+0

आपको यह कोड कहां मिला? घटक कोणीय 2 कोर का हिस्सा है, न कि web_worker। मैंने केवल पाया कि 'worker_app' मॉड्यूल कुछ WORKER_RENDER, MessageBus, आदि निर्यात करता है, मैंने इसे यहां पाया: https://github.com/angular/angular/blob/master/modules/angular2/docs/web_workers/web_workers.md – Andrey

+0

I इस कोड का उदाहरण मिला: http://www.syntaxsuccess.com/viewarticle/web-workers-in-angular-2.0 – MatsGA

+0

ठीक है, आप जो करना चाहते हैं वह यूएमडी प्रारूप में कोणीय 2 भाग का उपयोग करना है। लेकिन मुझे वेब श्रमिकों के साथ कोणीय 2 उमड बिल्ड नहीं मिला। तो अब मैं ES5 के लिए देख सकने का एकमात्र तरीका सिस्टमजेएस मॉड्यूल का उपयोग करके यूएमडी बंडल के बिना कोणीय 2 का उपयोग करने का प्रयास करता हूं। (मुझे आशा है कि मैं गलत हूं और आपको आसान समाधान मिल सकता है) – Andrey

उत्तर

2

क्या मैं पूछ सकता हूं, आप ES5 के साथ ऐसा क्यों करना चाहते हैं? यदि आप टाइपस्क्रिप्ट पसंद नहीं करते हैं तो आप आसानी से SystemJS और ES6 का उपयोग कर सकते हैं। टाइपस्क्रिप्ट ईएस 6 के लगभग समान होगा।

मामले में आप अभी भी 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; 

आप अंदाजा हो। आपको RequJS की आवश्यकता नहीं है ... आप SystemJS का उपयोग कर सकते हैं। आप इस तरह मुख्य फ़ाइल आयात करना चाहिए:

System.import("main") 

SystemJS सभी की आवश्यकता होती है कॉल async समाधान करेगा, लेकिन कोड में की गई The आवश्यकता कॉल सिंक देखो।

+0

आपके उत्तर के लिए धन्यवाद। हमने ईएस 5 के बारे में अपने दिमाग को बदल दिया और टाइपस्क्रिप्ट का उपयोग करके पुन: कार्यान्वित किया, जो कि हमें डर था जितना कठिन नहीं था। फ़िर भी सहायता के लिए धन्यवाद – MatsGA

संबंधित मुद्दे