时间:2021-05-28
本文介绍了ANGULAR2 与 D3.js集成实现自定义可视化的方法,分享给大家,具体如下:
目标
基本原理
angular2 的组件生命周期钩子方法\父子组件交互机制\模板语法
源码解析
代码结构很简单,其中除主页index.html和main.ts之外的代码结构如下所示:
代码结构
app.module.ts
import { BrowserModule } from '@angular/platform-browser';import { NgModule } from '@angular/core';import { FormsModule } from '@angular/forms';//componentsimport { AppComponent } from './app.component';import { Bubbles } from './bubbles.component';@NgModule({ declarations: [ AppComponent, Bubbles ], imports: [ BrowserModule, FormsModule ], providers: [], bootstrap: [AppComponent]})export class AppModule { }app.component.html
实现宿主视图定义,
2个按钮,按钮可以绑定了2点点击事件,执行相应的动作,刷新数组,同时完成汽泡图的更新;
1个汽泡图子组件,其中values为子组件的输入属性,实现父子组件之间的通信,numArray为汽泡图的输入数据数组,后续为随机生成的数组
<h1> <button (click)="refreshArr()" >开始刷新气泡图</button> <button (click)="stopRefresh()" >停止刷新气泡图</button> <bubbles [values]="numArray"></bubbles></h1>app.component.ts
通过指定一个3秒刷新一次的定时器,刷新数据,这里需要注意,需要先清空数组,再添加元素,直接修改数组元素值而不改变引用,则无法刷新汽泡图
import { Component, OnDestroy, OnInit } from '@angular/core';@Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css']})export class AppComponent implements OnInit, OnDestroy { intervalId = 0; numArray = []; // 清除定时器 private clearTimer() { console.log('stop refreshing'); clearInterval(this.intervalId); } // 生成指定范围内的随机数 private getRandom(begin, end) { return Math.floor(Math.random() * (end - begin)); } ngOnInit() { for (let i in this.numArray) { this.numArray[i] = this.getRandom(0, 100000000); // "0", "1", "2", }; } // 元素关闭清除定时器 ngOnDestroy() { this.clearTimer(); } // 启动定时刷新数组 refreshArr() { this.clearTimer() this.intervalId = window.setInterval(() => { this.numArray = []; for (let i=0;i<8;i++) { this.numArray.push(this.getRandom(0, 100000000)); } }, 3000); } // 停止定时刷新数组 stopRefresh() { this.clearTimer(); }}bubbles.component.ts 汽泡图组件类
bubbles.chart.ts 汽泡图类
效果展示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
虽说现在淘宝U站有了可视化模板的套用,可有些卖家还是想自己根据自己的心意装修得特别点的,这时我们就得自己添加U站自定义代码了。如何添加可视化U站自定义代码?
D3的应用非常广泛,现在成为了主流数据可视化工具之一。大家在刚接触使用d3.js的时候,感到最吃力的地方是data(),enter(),exit()这几个操作。
前言公司的项目中需要对数据做可视化处理,高级点的D3.js目前还没接触到,因此选用了大众化的Echarts,在vue的生态系统中已经有实现好的vue-echar
本文实例讲述了AngularJS实现自定义指令与控制器数据交互的方法。分享给大家供大家参考,具体如下:AngularJS自定义指令与控制器数据交互angular
前言D3.js是一个帮助开发者操纵基于数据的文档的JavaScript类库,在《D3.js实现柱状图的方法详解》中已经给大家介绍过如何用D3.js来实现一个简单