javascript - 如何让systemjs从全局格式的CDN加载模块?

标签 javascript typescript angular chromecast systemjs

我得到的错误是: 异常:ReferenceError:cast 未在 [null] 中定义

编写自定义 Chromecast 接收器应用程序需要使用以下 js 文件,该文件通过全局“cast”变量公开功能:

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

我想使用 systemjs 将此脚本作为模块加载,而不是在 index.html 中使用脚本标记。

这是一个 Angular2 和 TypeScript 应用程序,所以在某些服务 MyService 中,我希望能够导入“cast”并使用它。

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 + TypeScript + Chromecast Receiver 应用程序可以从以下位置克隆:

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

此代码目前没有任何代码可以使用 systemjs 加载“cast”,但可以通过更新 index.html 和 cast-receiver-manager.service.ts 快速修改

最佳答案

尝试添加

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

到你的系统配置然后声明你想从你的服务中的脚本导入的东西,

declare var cast;

这将使您的编译器能够识别您正在导入的内容的名称。

关于javascript - 如何让systemjs从全局格式的CDN加载模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37009181/

相关文章:

Typescript 接口(interface)方法 Vs 抽象方法语法差异

javascript - 使用 GraphQL 进行 React-Select

javascript - 调用从 Angular 6 下载 pdf 的 Spring boot api 给出错误无法解析响应

javascript - 使用 TypeScript 在 Jest 中模拟依赖

Typescript:了解各个部分的配合方式 - types、@typings、tsc 和 DefinelyTypes

javascript - 将js日期时间转换为时刻

javascript - 发生未处理的异常 : Script file . ./node_modules/chart.js 不存在

angular - 无法在代码共享项目中使用 Nativescript Localstorage 插件

javascript - 向 d3 图表添加一条水平线显示错误的值

javascript - 如何使用cookie重定向到另一个页面