小编KL_*_*HAI的帖子

Angular 生命周期钩子在其中创建的 Highcharts 实例

我目前正在使用 Angular 7+ 和Highcharts API

我使用以下官方 Github 链接集成了 Highcharts 。

callbackFunction我们可以使用 Highcharts 中的一个来获取图表实例。但是,我还没有弄清楚两件事:

  1. 图表实际实例何时与一起创建options,例如在 Angular中的哪个生命周期钩子中?或者它是否独立于生命周期钩子。
  2. 我看到了一个开发人员的例子,他callbackFunctionngOnInit生命周期钩子中使用了while并且它起作用了(即我们从回调中获得了一个图表实例)。然而,同样的不适用于ngOnChanges钩子。

    所以我的观点是,假设有一个@Inputgraph dataHighcharts.chart相关的属性(比如追加一个新系列),那么我将不得不使用 ngOnChanges 方法来检测输入属性和ngOnChanges 的变化根据this在 ngOnInit 之前调用。那么我将如何获得图表实例?那么我将如何做一个 addSeries 呢?

  3. 为什么addSeriesbutton click在 ngOnInit上工作而不在 ngOnInit 中工作?取消注释里面的第 59 行hello.component.ts可以看到它。

链接到代码

请参阅hello.component.ts任何详细信息。

highcharts angular

4
推荐指数
1
解决办法
269
查看次数

Angular 中 Highcharts 工具提示的单元测试

我在 Angular 7+ 中使用Highcharts API 。

假设在某个组件中,我的图表类型是“区域”,我的工具提示代码如下:

tooltip:{
    shared : true,
    outside : true,
    useHTML : true,
    formatter(){
        let str = `<table>`;
        this.points.forEach((point)=>{
            str = str.concat(
                `<tr>
                    <td style="color: ${point.series.color};font-size: 0.9em"></td>
                </tr>
                `
                );

            str = str.concat('</table>');
            return str;
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,在对该组件进行单元测试时,代码覆盖率不是 100%,并且在 index.html 文件中显示工具提示部分未被覆盖。如何检查是否相同?

unit-testing highcharts angular

1
推荐指数
1
解决办法
3462
查看次数

在 Angular 中使用 .pipe() 和 .subscribe() 时的控制流程

在这种情况下,我对代码流有点困惑。请参考下面的代码。

import { fromEvent } from 'rxjs';
import { mapTo } from 'rxjs/operators';

let btn = document.getElementById("btnclick");
let btn_clicks = fromEvent(btn, 'click');
let positions = btn_clicks.pipe(mapTo ("Testing MapTo"));
positions.subscribe(x => console.log(x));
Run Code Online (Sandbox Code Playgroud)

Testing MapTo当我单击按钮时它会输出。一开始我认为每当按钮点击发生时,该.pipe()方法被调用,然后该.subscribe()方法被调用导致它在控制台中输出。然而我读到,

subscribe is for activating the observable and listening for emitted values
Run Code Online (Sandbox Code Playgroud)

链接中

问题:

  1. 由于 .subscribe() 是在 .pipe() 之后调用的,它是如何工作的?我的意思是只有在 .subscribe() 之后它才得到值,那么它是如何通过 .pipe() 的?请帮助我理解这一点。
  2. 当我们像这样进行 http 调用时会发生什么(假设返回的 obeservable 是 x ):
this.http.get('url')
    .pipe(
      filter(x => x % 2 === 0), …
Run Code Online (Sandbox Code Playgroud)

pipe subscribe observable rxjs angular

1
推荐指数
1
解决办法
659
查看次数

标签 统计

angular ×3

highcharts ×2

observable ×1

pipe ×1

rxjs ×1

subscribe ×1

unit-testing ×1