2016-05-03 2 views
1

ошибки, что я получаю: ИСКЛЮЧЕНИЕ: ReferenceError: бросок не определен в [нуле]Как получить systemjs для загрузки модуля из CDN, который находится в глобальном формате?

Написания пользовательского Chromecast приложения приемника необходимо использовать следующий файл JS, который предоставляет функциональные возможности через глобальный "отливать 'переменная:

//www.gstatic.com/cast/sdk/libs/receiver/2.0.0/cast_receiver.js

Я хочу, чтобы загрузить этот скрипт в качестве модуля, используя systemjs вместо того, тег сценария в index.html.

Это приложение Angular2 и TypeScript, поэтому в некоторой службе MyService я хочу иметь возможность импортировать «бросок» и использовать его.

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); 
    } 
    ... 
} 

Образец приложения Angular2 + машинописи + Chromecast Приемник может быть клонирован из:

https://github.com/rmtuckerphx/angular2-chromecast-receiver-starterkit

Этот код в настоящее время не имеет никакого кода для загрузки «бросить», используя systemjs, но может быть быстро изменен путем обновления index.html и монолитно-приемника manager.service.ts

ответ

0

Попробуйте добавить

map: { 
    cast-receiver: '//www.gstatic.com/cast/sdk/libs/receiver/2.0.0/cast_receiver.js' 
} 

к вашей конфигурации системы, то объявить, что вы хотели бы импортировать из сценария в службе через,

declare var cast; 

это позволит вашему компилятору распознавать имя, что вы импортируете.

+1

Ваш ответ заставил меня на правильном пути. Спасибо. Я удалил мета-раздел, положил ресивер в раздел пути и добавил «объявить var cast» в myService.ts. Кроме того, также добавлен в myService.ts строку: «import cast from« cast-receiver »; –

 Смежные вопросы

  • Нет связанных вопросов^_^