Angular 2 - 导入外部传单打字稿库

2024-01-24

我正在尝试将打字稿传单库导入到我的 Angular 2 应用程序中。

这是我的地图组件。我已经使用 tsd install 安装了 leaflet.d.ts 并且我的应用程序没有抱怨/// <reference path="../../typings/leaflet/leaflet.d.ts"/>但是当我尝试使用 L.map(它是 leaflet.d.ts 中的导出模块)时,我收到错误“ReferenceError:L 未定义”。这是我第一次尝试在 Angular 2 中导入外部打字稿库,显然我做错了什么。

/// <reference path="../../typings/leaflet/leaflet.d.ts"/>
import { Component } from 'angular2/core';
@Component({
  selector: 'map',
  template: `
        <div id="map"></div>
  `,
})
export class Map{
    constructor(){
          var map = new L.Map('map', {
             zoomControl: false
         });
    }

包.json

{
  "dependencies": {
    "angular2": "^2.0.0-beta.3",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.33.3",
    "normalize.css": "^3.0.3",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.2",
    "systemjs": "0.19.6",
    "typings": "^0.6.4",
    "zone.js": "^0.5.11"
  },
  "devDependencies": {
    "concurrently": "^1.0.0",
    "gh-pages": "^0.11.0",
    "grunt": "~0.4.5",
    "grunt-contrib-clean": "^1.0.0",
    "grunt-contrib-copy": "^1.0.0",
    "grunt-contrib-cssmin": "^1.0.0",
    "grunt-contrib-nodeunit": "~0.4.1",
    "grunt-contrib-sass": "~0.9.0",
    "grunt-contrib-uglify": "~0.5.0",
    "grunt-shell": "^1.2.1",
    "lite-server": "^2.0.1",
    "normalize.css": "^3.0.3",
    "typescript": "^1.7.5"
  },
  "scripts": {
    "publish": "node publish.js",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server",
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" "
  }
}

tsd.json

{
  "version": "v4",
  "repo": "borisyankov/DefinitelyTyped",
  "ref": "master",
  "path": "typings",
  "bundle": "typings/tsd.d.ts",
  "installed": {
    "leaflet/leaflet.d.ts": {
      "commit": "1da639a106527e0c4010b354a1efe52a3059a291"
    }
  }
}

谁能告诉我我做错了什么?

Thanks!


您需要包含传单 JS 文件:

System.config({
  map: {
    leaflet: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/leaflet.js'
  },
  packages: {'app': {defaultExtension: 'ts'}} 
});
System.import('app/main')
        .then(null, console.error.bind(console));

然后您可以通过以下方式将其导入到您的模块中:

import {Component, OnInit} from 'angular2/core';
import leaflet from 'leaflet';

看看这个笨蛋:http://plnkr.co/edit/aUo2uvlxC5ji32u01jfF?p=preview http://plnkr.co/edit/aUo2uvlxC5ji32u01jfF?p=preview.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2 - 导入外部传单打字稿库 的相关文章

随机推荐

  • 在 Rails 中显示 404 而不是 500

    在我的 Rails 应用程序中 我定义了路线 以便用户可以访问类似的记录http mydomain com qwe2 http mydomain com qwe2 但如果他们输入错误的 qwe2 他们会得到 500 页 我认为404会更合适
  • 从文本文件的行范围中删除 \n 字符

    假设我们有一个 1000 行的文本文件 我们如何删除第20行到第500行的新行字符 例如用空格替换它们 My try sed 20 500p N s n better not to say anything 所有其他行 1 19 501 1
  • 如何在没有 MANIFEST.in 文件的情况下包含 package_data?

    我怎样才能包括package data for sdist没有 MANIFEST in 文件 我的 setup py 看起来像这样 import setuptools setuptools setup name foo version 20
  • “MEIPASS”代表什么?

    PyInstaller 设置sys MEIPASS属性让应用程序知道在哪里可以找到其捆绑的资源 来源 这个答案 https stackoverflow com q 7674790 119527 我知道什么 MEIPASS does 名字是什
  • SQL 日期范围分割

    你能告诉我当日期范围重叠时分割日期范围的 SQL 吗 数据 具有日期范围和可能的其他列的示例数据 Col1 FromDate ToDate 1 1 1 1 2008 31 12 2010 2 1 1 1 2009 31 12 2012 3
  • 更改 UIButton 内的 SF 符号大小

    我声明一个这样的按钮 let menuButton UIButton 之后 我尝试更改它的参数并在 LBTATools 一个 pod 的帮助下通过以下函数设置他在视图上的位置 fileprivate func setMenuButtonUI
  • 如何使用 SimpleMembership 获取角色?

    我正在使用 SimpleMembership 开发 MVC4 应用程序 我有一个表 userInfo 其中存储用户的信息 例如姓名 电子邮件 地址 电话 角色等 当我注册用户时 数据存储在该表和webpages Membership 中 其
  • Three.js 立方体黑色但我添加了纹理?

    我尝试向使用 JS THREE JS 制作的立方体添加纹理 但是当我在浏览器中打开它时 它全黑了 这是我的代码
  • 如何使用 MongoDB compass 删除 MongoDB 集合中选定的多条记录

    我对 MongoDB 和 MongoDB Compass 非常陌生 我的客户集合中有大约 1000 条记录 如何通过 MongoDB compass 一次删除所有记录 非常感谢 您可以使用 MongoDB compass 提供的 Embed
  • C - /proc/pid/exe 上的 Lstat

    我正在尝试使用 lstat 获取 proc pid exe 文件的大小 以字节为单位 这是我的代码 int main int argc char argv struct stat sb char linkname ssize t r if
  • StackExchange.Redis如何订阅多个频道

    我如何订阅多个频道 据我了解 需要传递给 Subscribe 方法的 Channel 类支持模式或单通道订阅 是否可以通过一个命令订阅多个频道 例子 客户端在 3 个不同的频道上发布内容 ChannelA ChannelB 和 Channe
  • iOS 分发:将私钥/证书迁移到新机器

    我需要能够从不同于我用来提交原始文件的机器向我的应用程序提交更新 我按照文档中的说明进行操作 但是与往常一样 文档假设第一次一切正常 我尝试将我的开发人员配置文件从旧的导出到新的 但是当我提交时 应用程序加载器说它是无效签名 因此 我尝试生
  • 为根包生成 scaladoc

    我很好奇如何记录root包 显示为第一页scala 文档 http docs scala lang org 汇编 可以以某种方式创建一个引用根包的包对象 或者是否有任何配置选项 对此事的描述有些模糊 scaladoc 似乎有一个名为 doc
  • 清理 iPhone 模拟器

    在为 iPhone 模拟器构建时 是否有一种直接的方法来清理 xcode 部署应用程序的目录 我有一个 sqlite 数据库 如有必要 它会在启动时复制到 Documents 文件夹中 问题是我可能会更改我的架构 但新数据库不会被复制 因为
  • Visual Studio 2010 报告服务项目?

    因此 Visual Studio 2010 似乎不支持 SSRS 项目 至少不是旧的 有谁知道这种情况的状态是什么 以及是否可以使用 VS2010 编写新的 SSRS 报告 或者是否应该只使用 VS2008 BIDS SQL Server
  • 如何缩进 Python 列表推导式?

    列表推导式在某些情况下可能很有用 但读起来也可能相当糟糕 作为一个稍微夸张的例子 您将如何缩进以下内容 allUuids x id for x in self db query schema allPostsUuid execute tim
  • 如何在 Quickcheck 中使用修饰符(在我的例子中是积极的)

    我有一个功能 rev 它返回属于三个类型类的类型的一些值 rev Integral a Show a Read a gt a gt a rev read reverse show 我想用快速检查来测试它的一些属性 不过 我对测试 Integ
  • 相当于其他浏览器中 Firefox 的“错误控制台”

    其他浏览器中是否有与 Firefox 的 错误控制台 等效的功能 我发现错误控制台可以方便地查找 JavaScript 错误 但似乎没有一种等效的简单方法可以在其他浏览器上查看错误消息 我对 Internet Explorer Opera
  • 使用 POST COMMIT 挂钩在 SVN 存储库上提交代码时自动触发 Jenkins 作业

    我正在尝试使用 Jenkins docker 和 Ansible 来实现 CI CD 管道 我正在为我的版本控制系统使用 SVN 代码存储库 对于部署和 SVN 代码存储库 我使用 AWS EC2 部署和代码存储库位于单独的虚拟机中 我的要
  • Angular 2 - 导入外部传单打字稿库

    我正在尝试将打字稿传单库导入到我的 Angular 2 应用程序中 这是我的地图组件 我已经使用 tsd install 安装了 leaflet d ts 并且我的应用程序没有抱怨