带有Angular 4的ng2-chart:无法绑定到'数据'因为它不是“帆布”的已知属性。

时间:2017-07-19 10:12:05

标签: javascript angular chart.js systemjs ng2-charts

我们的想法是将 chart.js Angular 4和ng2-charts 一起使用。 我正在处理示例here,但我无法让它发挥作用。

我收到以下错误消息:

  

无法绑定到'数据'因为它不是'canvas'

的已知属性

我已将其导入app.module.ts,因为大多数帖子建议使用此错误。我有什么遗失的吗?

... component.html:

<div style="display: block">
    <canvas baseChart
        [data]="data"
        [labels]="labels"
        [chartType]="type">
    </canvas>
</div>

... component.ts

...
labels:string[] = ['Download Sales', 'In-Store Sales', 'Mail-Order Sales'];
data:number[] = [350, 450, 100];
type:string = 'doughnut';
...

的index.html:

<script src="lib/chart.js/dist/chart.js"></script>

app.module.ts:

import { ChartsModule } from 'ng2-charts/ng2-charts';
imports: [
    ...
    ChartsModule,
    ...
],

system.js

map: {
    ...
    'ng2-charts': 'npm:ng2-charts/bundles'
},
packages: {
    ...
    'ng2-charts': {
         defaultExtension: 'js'
    }
}

的package.json:

"dependencies": {
  "@angular/animations": "^4.3.0",
  "@angular/common": "^4.3.0",
  "@angular/compiler": "^4.3.0",
  "@angular/compiler-cli": "^4.3.0",
  "@angular/core": "^4.3.0",
  "@angular/forms": "^4.3.0",
  "@angular/http": "^4.3.0",
  "@angular/platform-browser": "^4.3.0",
  "@angular/platform-browser-dynamic": "^4.3.0",
  "@angular/platform-server": "^4.3.0",
  "@angular/router": "^4.3.0",
  "@angular/upgrade": "4.3.0",
  "@ngx-translate/core": "6.0.1",
  "@ngx-translate/http-loader": "0.0.3",
  "@types/jquery": "2.0.44",
  "bootstrap": "3.3.7",
  "core-js": "2.4.1",
  "ej-angular2": "15.1.41",
  "font-awesome": "4.7.0",
  "jquery": "3.2.1",
  "jsrender": "0.9.84",
  "pretty-checkbox": "2.2.1",
  "reflect-metadata": "0.1.10",
  "rxjs": "5.4.0",
  "syncfusion-javascript": "15.1.41",
  "systemjs": "0.20.12",
  "typescript": "^2.4.1",
  "zone.js": "0.8.10",
  "ng2-charts": "1.6.0",
  "chart.js": "2.6.0"
},

1 个答案:

答案 0 :(得分:1)

经过几个小时的尝试和错误,我得到了它的工作。我更改了以下内容:

app.module.ts:

def choices_location(instance, filename):
     if instance.week == 'Week_1':
        return os.path.join('documents', 'Week_1','Mentee', filename)
     elif  instance.week == Week_2:
        return os.path.join('documents', 'Week_2','Mentee', filename)

docfile = models.FileField(upload_to=choices_location)

system.js:

import { ChartsModule } from 'ng2-charts';