当前位置: 首页 > 知识库问答 >
问题:

向Angular 4添加第三方JavaScript文件

储法
2023-03-14

我目前正试图把自己读到Angular 4。对于一个项目,我需要在一个Angular应用程序中使用“Here Maps”显示一个地图。但我不知道如何导入脚本,同时保持对组件中类的访问。

我试图按照下面的说明进行操作:https://developer.here.com/documentation/maps/topics/quick-start.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>See720</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">

  <script src="http://js.api.here.com/v3/3.0/mapsjs-core.js" type="text/javascript" charset="utf-8"></script>
  <script src="http://js.api.here.com/v3/3.0/mapsjs-service.js" type="text/javascript" charset="utf-8"></script>
  <script type="text/javascript">
    var platform = new H.service.Platform({
      'app_id': '****',
      'app_code': '****',
      useCIT: true
    });
  </script>
</head>
<body>
  <app-root></app-root>
</body>
</html>
var platform = new H.service.Platform({
    'app_id': '****',
    'app_code': '****',
    useCIT: true
});

...添加到OnInit()方法中。但是“h”对象永远不会被识别。使用老式的JavaScript和Html,我可以实现这一点。

在Angular 4中导入这样一个JavaScript文件的正确方法是什么?我如何访问它的类和方法?

更新

<div style="text-align:center">
  <!--<div><font color="white">This is some text!</font></div>-->
  <div id="mapContainer" style="width: 900px; height: 600px"></div>
</div>
import {AfterViewInit, Component} from '@angular/core';

declare var H: any;

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements AfterViewInit {
  title = 'C720';

  ngAfterViewInit() {
    // Initialize the platform object:
    let platform = new H.service.Platform({
      'app_id': '****',
      'app_code': '****',
      useCIT: true
    });

    // Obtain the default map types from the platform object
    let defaultLayers = platform.createDefaultLayers();

    // Instantiate (and display) a map object:
    let map = new H.Map(
      document.getElementById('mapContainer'),
      defaultLayers.normal.map,
      {
        zoom: 5,
        center: { lat: 52.5, lng: 13.5 }
      }
    );
  }
}
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>See720</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">

  <script src="http://js.api.here.com/v3/3.0/mapsjs-core.js" type="text/javascript" charset="utf-8"></script>
  <script src="http://js.api.here.com/v3/3.0/mapsjs-service.js" type="text/javascript" charset="utf-8"></script>
  <script src="http://js.api.here.com/v3/3.0/mapsjs-mapevents.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
  <app-root></app-root>
</body>
</html>

共有1个答案

茹航
2023-03-14

您可以在特定组件中添加js,例如

ngOnInit(){
  var scriptUrl = 'http://js.api.here.com/v3/3.0/mapsjs-core.js';
  let node = document.createElement('script');
  node.src = scriptUrl;
  node.type = 'text/javascript';
  node.async = true;
  node.charset = 'utf-8';
  document.getElementsByTagName('head')[0].appendChild(node);
}
 类似资料:
  • 但是如果我没有。jar的话,在Xamarin的情况下该如何解决呢? 我试图按照本指南绑定Java库,但没有成功。

  • 我想加载一些在maven存储库或其他类似存储库中不存在的jar文件。 为此,我在bitbucket上创建了一个名为“maven-repo”的存储库,并将其克隆到我的本地机器上。 但它给了我一个错误,未能加载一个jar。 如何在Project中包含jar文件和导入类???

  • 问题内容: 假设我有一个对象 如何通过添加方法扩展该对象,并确保将来的实例具有此方法? 问题答案: 您需要将其添加到Foo的原型中:

  • 问题内容: 我正在使用scrapy 1.1。我想添加中间件,该中间件将无缝且随机地轮换用户代理。用户代理字符串由模块提供。 按照网站的指示,我有: 但是,当我运行它时,我得到: 我究竟做错了什么? 编辑:我在virtualenv中打开了一个python shell: 因此,“ scrapy.downloadermiddlewares.useragent.UserAgentMiddleware”似乎

  • 我在android中添加了第三方字体。我把字体放在资产/字体/qqqq.ttf的根目录中 但它有这样一个错误:无法生成本机字体。 有什么问题?有人知道吗?非常感谢!