2016-10-28 30 views
6

Wersje: Cordova: 6.3.1, Gulp CLI: 1.2.2, struktura jonowa: 2.0. 0-rc.0, Ionic CLI wersja: 2.1.0ng2-charts - Nie można powiązać z "zestawami danych", ponieważ nie jest to znana właściwość "podstawowego wykresu"


Używam ng2-charts w mojej aplikacji ionic2.

przywóz nie import {ChartsModule} from "ng2-charts"; ale import {ChartsModule} from "ng2-charts/components/charts/charts;" powodu this (issue #440)

cała moja app.module.ts

import { NgModule } from '@angular/core'; 
import { IonicApp, IonicModule } from 'ionic-angular'; 
import { ChartsModule } from 'ng2-charts/components/charts/charts'; 

import { MyApp } from './app.component'; 
import { EventsPage } from '../pages/events/events.component'; 
import { ChartComponent } from '../pages/chart/chart.component'; 
import { APICaller } from '../services/APICaller.service'; 
import { EventDetailComponent } from '../pages/event-detail/event-detail.component'; 
import { ParticipantDetail } from '../pages/participant-detail/participant-detail.component'; 
import { ParticipantFeedComponent } from '../pages/participant-feed/participant-feed.component'; 



@NgModule({ 
    declarations: [ 
    MyApp, 
    EventsPage, 
    EventDetailComponent, 
    ParticipantDetail, 
    ParticipantFeedComponent, 
    ChartComponent 
    ], 
    imports: [ 
    IonicModule.forRoot(MyApp), 
    ChartsModule 
    ], 
    bootstrap: [IonicApp], 
    entryComponents: [ 
    MyApp, 
    EventsPage, 
    EventDetailComponent, 
    ParticipantDetail, 
    ParticipantFeedComponent, 
    ChartComponent 
    ], 
    providers: [APICaller] 
}) 
export class AppModule { } 

ChartComponent:

import { Component, OnInit } from '@angular/core'; 
@Component({ 
    selector: 'pie-chart', 
    template: ` 

<base-chart 
    class="chart" 
    [datasets]="datasets" 
    [labels]="labels" 
    [options]="options" 
    [chartType]="'doughnut'">Titel? 
</base-chart> 

` 
}) 
export class ChartComponent implements OnInit { 
    private datasets = [ 
     { 
      label: "# of Votes", 
      data: [12,19,3,5,2,3] 
     } 
    ]; 


    private labels = ['Red', 'blue', 'yellow', 'green', 'purple', 'orange']; 

    private options = { 
     scales: { 
      yAxes: [{ 
       beginAtZero: true 
      }] 
     } 
    }; 

    constructor() { 

    } 

    ngOnInit() { } 
} 

myślałem, to może być problemem z Chart.js. I stwierdziłem, że chart.js zainstalowane z npm dało w wyniku 404 odwołanie do mojego index.html jako node_modules/chart.js/src/chart.js.

Więc pobrałem Chart.bundle.min.js po tym nie działał Próbowałem pobrać sam Chart.js. (umieszczając go w src/assets/js/...).

Ten problem został również rozwiązany w sekcji komentarzy ng2-charts\ng2-charts.js does not export ChartsModule. Ale ponieważ nie udzielono odpowiedzi, a to nie było główne pytanie, zamieściłem tę.

Błąd: (pomijanie errormessage nie pomoże, ponieważ zatrzymuje moją aplikację przed ładowaniem).

polyfills.js:3 Unhandled Promise rejection: Template parse errors: 
Can't bind to 'datasets' since it isn't a known property of 'base-chart'. 
1. If 'base-chart' is an Angular component and it has 'datasets' input, then verify that it is part of this module. 
2. If 'base-chart' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schemas' of this component to suppress this message. 
(" 
    class="chart" 

    [ERROR ->][datasets]="datasets" 

    [labels]="labels" 
"): [email protected]:4 
Can't bind to 'labels' since it isn't a known property of 'base-chart'. 
1. If 'base-chart' is an Angular component and it has 'labels' input, then verify that it is part of this module. 
2. If 'base-chart' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schemas' of this component to suppress this message. 
(" 
    [datasets]="datasets" 

    [ERROR ->][labels]="labels" 

    [options]="options" 
"): [email protected]:4 

Odpowiedz

2

nigdy nie używałem tej biblioteki, ale od samego patrzenia na the latest (1.4.1) version's source code, powinien on być wykorzystywany jako atrybut na płótnie @Directive({selector: 'canvas[baseChart]'})

<canvas baseChart 
    class="chart" 
    [data]="datasets" 
    [labels]="labels" 
    [options]="options" 
    [chartType]="'doughnut'"> 
</canvas> 
+0

to teraz nie rzuca błąd już jednak ISN wykresu Wyświetlone – Ivaro18

+0

Może chcesz dodać do niego rozmiar, nie wiem. Czy masz szerokość/wysokość dla klasy css? –

+0

naprawiono za pomocą tego plunkera. Przyjmuję twoją odpowiedź, ponieważ odpowiedziała na pytanie. https://plnkr.co/edit/MWE0umGfN3nZM6zLPPVI?p=preview – Ivaro18