typescript DrawFlowAngular 14

4sup72z8  于 2023-03-09  发布在  TypeScript
关注(0)|答案(1)|浏览(113)

我正在尝试使用Angular 14中的DrawFlow库
这是我的组件:
drawing-board.component.ts

import { Component, OnInit } from '@angular/core';
import Drawflow from 'drawflow';
@Component({
  selector: 'app-drawing-board',
  templateUrl: './drawing-board.component.html',
  styleUrls: ['./drawing-board.component.css']
})
export class DrawingBoardComponent implements OnInit {

  constructor() { }
  editor:Drawflow|null= null;
  ngOnInit(): void {
    let element = <HTMLElement> document.getElementById('drawflow');
    console.log(element);
    this.editor = new Drawflow(element);
    this.editor.reroute = true;
    this.editor.curvature = 0.5;
    this.editor.reroute_fix_curvature = true;
    this.editor.reroute_curvature = 0.5;
    this.editor.force_first_input = false;
    this.editor.line_path = 1;
    this.editor.editor_mode = 'edit';

    this.editor.start();
  }

}

drawing-board.component.html

<div id="drawflow" class="">
</div>

并在此模式下使用:

<app-drawing-board></app-drawing-board>

但不起作用,只能看到一个空的div html

我需要编辑更多的属性?或者是一个糟糕的实现?

2g32fytz

2g32fytz1#

将组件更改为一个独立的组件。2你可以通过编辑@Component装饰器并添加底线来实现。
https://angular.io/guide/standalone-components

standalone: true,
  imports: [CommonModule]

然后您可以将其作为自己的模块直接导入到您需要它的位置或直接导入到app.module.ts文件中。

@NgModule({
… omitted 
  imports: [
    BrowserModule,
    AppRoutingModule,
    DrawingBoardComponent
enter code here
  ],
… omitted 
})

原因是组件看起来没有被调用,也没有被加载到最近的相邻模块中。2所以要解决这个问题,本质上每个组件都变成了它自己的模块,并且它还允许延迟组件加载--这可以解决你可能遇到的一些其他初始化错误。
你可以在angular上阅读原因和关于这项技术的更多信息,我选择了这篇博客文章。我不认识那个人,我也不隶属于他们。
https://angular.io/guide/lazy-loading-ngmodules
https://kinsta.com/blog/lazy-loading-in-angular/

相关问题