原創|使用教程|編輯:龔雪|2022-03-09 10:25:30.950|閱讀 224 次
概述:本文主要為大家介紹Kendo UI for Angular的StockChart導航器,歡迎下載最新版控件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
StockChart導航器表示放置在圖表底部的面板,可用于更改主窗格中的日期間隔。
要配置導航器,請執行以下任一操作:
要按需加載選定時期的主要系列數據,請使用 navigatorFilter 事件。 在這種情況下,您可以使用 skipNavigatorRedraw 方法來防止導航器被重繪。
app.component.ts
import { Component } from '@angular/core'; import { StockDataService } from './stock-data.service'; @Component({ selector: 'my-app', template: ` <kendo-stockchart (navigatorFilter)="onNavigatorFilter($event)"> <kendo-chart-series> <kendo-chart-series-item type="candlestick" [data]="seriesData" openField="Open" closeField="Close" lowField="Low" highField="High" categoryField="Date"> </kendo-chart-series-item> </kendo-chart-series> <kendo-chart-navigator> <kendo-chart-navigator-select [from]="from" [to]="to"> </kendo-chart-navigator-select> <kendo-chart-navigator-series> <kendo-chart-navigator-series-item type="area" [data]="navigatorData" field="Close" categoryField="Date"> </kendo-chart-navigator-series-item> </kendo-chart-navigator-series> </kendo-chart-navigator> </kendo-stockchart> ` }) export class AppComponent { public seriesData: any[] = []; public navigatorData: any[] = []; public from: Date = new Date('2009/02/05'); public to: Date = new Date('2011/10/07'); constructor(private service: StockDataService) { // Loading low resolution data for the navigator series and detailed data for the main series service.getAll({ from: this.from, to: this.to }).then((data) => { this.navigatorData = data[0]; this.seriesData = data[1]; }); } public onNavigatorFilter(e) { // Get the data for the selected period this.service.get({ from: e.from, to: e.to }).then((data) => { // Prevent the navigator from being redrawn because of the change in the options // We just need to change the data in the main series. e.sender.skipNavigatorRedraw(); this.seriesData = data; }); } }
app.module.ts
import { NgModule } from '@angular/core'; import { HttpClientModule, HttpClientJsonpModule } from '@angular/common/http'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { StockChartModule } from '@progress/kendo-angular-charts'; import { AppComponent } from './app.component'; import { StockDataService } from './stock-data.service'; import 'hammerjs'; @NgModule({ bootstrap: [ AppComponent ], declarations: [ AppComponent ], imports: [ BrowserModule, BrowserAnimationsModule, HttpClientModule, HttpClientJsonpModule, StockChartModule ], providers: [ StockDataService ] }) export class AppModule {}
stock-data.service.ts
import { Injectable } from '@angular/core'; import { HttpClient, HttpParams } from '@angular/common/http'; @Injectable() export class StockDataService { private url = '//demos.telerik.com/kendo-ui/service/StockData'; constructor(private http: HttpClient) { } public get(filter?: any): Promise<any[]> { return new Promise<any[]>((resolve: Function) => { this.http.jsonp(this.url + this.getOptions(filter), 'callback') .subscribe(result => resolve(result)); }); } public getAll(filter: any): Promise<any> { return Promise.all([this.get(), this.get(filter)]); } private getOptions(filter: any): string { let params = new HttpParams(); if (filter) { const filters = { logic: 'and', filters: [{ field: 'Date', operator: 'gte', value: filter.from }, { field: 'Date', operator: 'lt', value: filter.to }] }; params = params.append('filter', JSON.stringify(filters)); } return params.keys.length ? '&' + params.toString() : ''; } }
main.ts
import './polyfills'; import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { ChartsModule } from '@progress/kendo-angular-charts'; import { AppModule } from './app.module'; enableProdMode(); const platform = platformBrowserDynamic(); platform.bootstrapModule(AppModule);
Kendo UI for Angular是Kendo UI系列商業產品的最新產品。Kendo UI for Angular是專用于Angular開發的專業級Angular組件。telerik致力于提供純粹的高性能Angular UI組件,無需任何jQuery依賴關系。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網