簡體   English   中英

無法讓“Kendo UI for Angular 2”組件工作

[英]Cannot get “Kendo UI for Angular 2” components to work

我正在嘗試構建一個使用“Kendo UI for Angular 2”控件的演示應用程序,但我似乎只能讓 Button 控件工作。 所有其他控件要么顯示錯誤,要么根本不顯示。 我真的可以使用一些幫助,以便我可以弄清楚該產品是否值得我們正在啟動的新長期項目的成本。

在下面的示例中,我使用 Angular 2 來顯示它們的按鈕和下拉列表。 只有按鈕有效。 請幫我讓這個樣本工作。 我花了太長時間試圖弄清楚這一點。 謝謝!

package.json(為簡潔起見被截斷)

"dependencies": {
   ...
   "@progress/kendo-angular-buttons": "^0.10.2",
   "@progress/kendo-angular-dropdowns": "^0.10.2",
   ...

systemjs.config.js(為簡潔起見被截斷)

map: {
  app: 'app',
  'rxjs': 'npm:rxjs',
  '@progress': 'npm:@progress',
  '@telerik': 'npm:@telerik',
  ...
},
packages: {
  "@progress/kendo-angular-dropdowns": { main: './dist/npm/js/main.js', defaultExtension: 'js' },
  "@progress/kendo-angular-buttons": { main: './dist/npm/js/main.js', defaultExtension: 'js' },    
  '@telerik/kendo-dropdowns-common': { main: './dist/npm/js/main.js', defaultExtension: 'js' },
  ...
}

app.module.ts

// Application
import { AppComponent }  from './app.component';

// Misc Modules
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { NgModule } from '@angular/core';

// Kendo Controls
import { ButtonsModule } from '@progress/kendo-angular-buttons';
import { DropDownsModule } from '@progress/kendo-angular-dropdowns';

// Test Pages
import { KButtonComponent } from './components/k.button.component'
import { KDropDownListComponent } from './components/k.dropdownlist.component'

@NgModule({
    imports: [
        BrowserModule, FormsModule, ReactiveFormsModule, HttpModule, ButtonsModule, DropDownsModule ],
    declarations: [ AppComponent, KButtonComponent, KDropDownListComponent ],
    providers: [],
    bootstrap: [ AppComponent ]
})

export class AppModule { }

app.component.ts

            import { Component } from '@angular/core';

            // Kendo Controls
            import { ButtonsModule } from '@progress/kendo-angular-buttons';
            import { DropDownsModule } from '@progress/kendo-angular-dropdowns';

import { Component } from '@angular/core';

@Component({
    selector: 'my-app',
    template: `
        <button kendoButton (click)="onButtonClick()" [primary]=true>Button!</button> This works!
        <kendo-dropdownlist [data]="listItems"></kendo-dropdownlist> This doesn't even display.
    `,
    styleUrls: [ '../node_modules/@progress/kendo-angular-buttons/dist/npm/css/main.css', '../node_modules/@progress/kendo-angular-dropdowns/dist/npm/css/main.css' ]
})

export class AppComponent {
   listItems: Array<string> = ['This', 'is', 'really', 'upsetting'];

   onButtonClick() {
        alert('The only working Kendo component');
    }
}

使用命令npm install --save @telerik/kendo-theme-default安裝默認的 Kendo 主題( https://www.npmjs.com/package/@telerik/kendo-theme-default )。

在 index.html 中指定 CSS 文件,所有控件都將按預期顯示。

<link rel="stylesheet" href="./node_modules/@telerik/kendo-theme-default/dist/all.css">

除了 systemjs.config.js 配置外,一切看起來都正確。 您的包定義需要將映射與您定義的庫相匹配。 這是我的配置和作品,只需用您的組件定義替換我的網格組件定義。

systemjs.config.js

 // map tells the System loader where to look for things map: { 'app': 'dist', '@angular/core': 'npm:@angular/core/bundles/core.umd.js', ... '@progress/kendo-angular-intl': 'npm:@progress/kendo-angular-intl', '@progress/kendo-angular-grid': 'npm:@progress/kendo-angular-grid', '@telerik/kendo-intl': 'npm:@telerik/kendo-intl', }, // packages tells the System loader how to load when no filename and/or no extension packages: { 'app': { main: './app.main.js', defaultExtension: 'js' }, ... '@progress/kendo-angular-intl': { main: './dist/npm/js/main.js', defaultExtension: 'js' }, '@progress/kendo-angular-grid': { main: './dist/npm/js/main.js', defaultExtension: 'js' }, '@telerik/kendo-intl': { main: './dist/npm/js/main.js', defaultExtension: 'js' } } });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM