Cropperjs 在 angular 2 中不工作

Cropperjs not working in angular 2

我正在尝试在 Angular 项目中使用 cropperjs 库。文档中的 cropper 示例在普通静态网页上运行良好(简单的 index.html 带有用于 js 的 <script> 标记和 link 用于 cropper.css 文件)。

但由于某种原因,这不起作用。 Cropper 似乎加载了(console.log(Cropper) 执行该功能),并且有一些功能,但看起来缺少样式。

cropper.component.ts

import {Component} from "@angular/core";

var foo = require('cropperjs/dist/cropper');


@Component({
  selector: "cropper",
  template: `
    <div>
      <img id="image" src="https://dl.dropboxusercontent.com/s/vyeh3vqc93hbye4/Capture%20d%27%C3%A9cran%202016-05-27%2017.14.53.png?dl=0">
    </div>
  `,
  styleUrls: ['../styles/cropper.css', '../styles/cropper.component.css']
})
export class CropperComponent implements OnInit{
  ngOnInit(){
    var image = document.getElementById('image');
    var cropper = new Cropper(image, {
      aspectRatio: 16 / 9,
      crop: function(e) {
        console.log(e.detail.x);
        console.log(e.detail.y);
        console.log(e.detail.width);
        console.log(e.detail.height);
        console.log(e.detail.rotate);
        console.log(e.detail.scaleX);
        console.log(e.detail.scaleY);
      },
    });
  }
}

在开发人员工具中查看,cropper.js 添加的标签没有添加自定义属性 Angular 用于样式(看起来像 _ngcontent-xpk-4 的那些),因此 cropperjs样式无效。

只需在 index.html 中添加 cropper.css (<link rel="stylesheet" href=".../cropper.css">) 而不是在组件中引用它即可解决问题。