Der Fehler, ich bin immer ist: AUSNAHME: Reference: Besetzung wird in [null] nicht definiertWie Systemjs zu Modul von CDN laden, die im globalen Format ist?
einen Empfänger Anwendung benutzerdefinierte Chrome Schreiben erfordert die Verwendung der folgenden js-Datei, die die Funktionalität über ein globales 'macht Guss 'Variable:
//www.gstatic.com/cast/sdk/libs/receiver/2.0.0/cast_receiver.js
ich möchte dieses Skript als Modul laden, mit systemjs anstelle von ein Skript-Tag in index.html.
Dies ist eine Angular2 und TypScript-Anwendung so in einigen Service, MyService, ich möchte in der Lage sein zu importieren und es zu verwenden.
https://github.com/rmtuckerphx/angular2-chromecast-receiver-starterkit
:index.html
<script>
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
},
paths: {
'cast': '//www.gstatic.com/cast/sdk/libs/receiver/2.0.0/cast_receiver.js'
},
meta: {
'//www.gstatic.com/cast/sdk/libs/receiver/2.0.0/cast_receiver.js': {format: 'global'}
},
});
System.import('app/main')
.then(null, console.error.bind(console));
</script>
myService.ts
import {Injectable} from 'angular2/core';
import cast from 'cast';
@Injectable()
export class MyService {
public init =() => {
cast.receiver.logger.setLevelValue(cast.receiver.LoggerLevel.NONE);
}
...
}
Eine Probe Angular2 + Maschinenschrift + Chrome Receiver Anwendung kann von geklont
Dieser Code muss nicht noch keinen Code ‚werfen‘ laden systemjs verwenden, aber schnell durch die Aktualisierung index.html und gussempfänger manager.service.ts
Ihre Antwort brachte mich auf den richtigen Weg. Vielen Dank. Ich habe den Meta-Abschnitt entfernt, den Cast-Empfänger in den Pfadabschnitt eingefügt und "declare var cast" zu myService.ts hinzugefügt. Außerdem fügte myService.ts die Zeile hinzu: "Import von Cast-Receiver importieren"; –