2017-08-08 99 views
1

我收到以下错误,当我使用@angular/material@angular/cdk如何添加角材料角〜4.3.3

http://localhost:3000/@angular/cdk/observe-content (404) Not found error

systemjs.config.js

map: { 
     ... 

    // Angular Material 
    '@angular/material': 'npm:@angular/material/bundles/material.umd.js', 

    // CDK individual packages 
    '@angular/cdk/platform': 'npm:@angular/cdk/bundles/cdk-platform.umd.js', 
    '@angular/cdk/a11y': 'npm:@angular/cdk/bundles/cdk-a11y.umd.js', 
} 

materialmodule.ts

import { NgModule }  from '@angular/core'; 
import { MdButtonModule, MdCheckboxModule,MdButton } from '@angular/material'; 

@NgModule({ 
    imports: [ 
     MdButtonModule, 
     MdButton 
    ], 
    exports: [ 
     MdButtonModule, 
     MdButton 
    ] 
}) 
export class CustomMaterialModule { } 

app.component.ts

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 
import { AppComponent } from './app.component'; 
import {CustomMaterialModule} from './materialmodule/material.module'; 
@NgModule({ 
    imports: [ 
     BrowserModule, 
     BrowserAnimationsModule, 
     CustomMaterialModule 
    ], 
    declarations: [ AppComponent ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

什么是从我的代码导致错误如上所述失踪?

+0

您是否尝试在您的systemjs配置文件中添加''@ angular/cdk/observe-content':'npm:@ angular/cdk/bundles/cdk-observe-content.umd.js''? – PierreDuc

+0

为什么你的模块中有'MdButtonModule'的重复? – Edric

回答

5

从外观上看,您需要将cdk/observe-content条目添加到您的systemjs.config.js。这里列出了他们所服务的软件包,不会为了安全而添加它们。这是奇怪的,虽然他们的文档只是说添加platforma11y,但我想这取决于什么样的,你使用的材料模块,你必须输入一定cdk

'@angular/material': 'dist/bundles/material.umd.js', 
'@angular/cdk': 'dist/bundles/cdk.umd.js', 
'@angular/cdk/a11y': 'dist/bundles/cdk-a11y.umd.js', 
'@angular/cdk/bidi': 'dist/bundles/cdk-bidi.umd.js', 
'@angular/cdk/coercion': 'dist/bundles/cdk-coercion.umd.js', 
'@angular/cdk/keyboard': 'dist/bundles/cdk-keyboard.umd.js', 
'@angular/cdk/observe-content': 'dist/bundles/cdk-observe-content.umd.js', 
'@angular/cdk/platform': 'dist/bundles/cdk-platform.umd.js', 
'@angular/cdk/portal': 'dist/bundles/cdk-portal.umd.js', 
'@angular/cdk/rxjs': 'dist/bundles/cdk-rxjs.umd.js', 
'@angular/cdk/table': 'dist/bundles/cdk-table.umd.js', 
'@angular/cdk/testing': 'dist/bundles/cdk-testing.umd.js', 

如果你只是使用您CustomMaterialModule每桶你应该导出你需要的模块(不是组件),没有必要将其导入:

@NgModule({ 
    exports: [ 
    MdButtonModule 
    ] 
}) 
export class CustomMaterialModule {} 
+0

是的,它也需要其他软件包。快速提问:我的MaterialModule是否需要任何MaterialCore软件包或任何其他默认软件包?它仍然给我错误。 – micronyks

+0

不是我所知道的,一切都应该放在'material.umd.js'里面。你得到什么样的错误? – PierreDuc

+0

'模块'CustomMaterialModule'导入的意外指令'MdButton'。请添加一个@NgModule注释。' – micronyks

2

版本为4.3角

 '@angular/cdk': 'npm:@angular/cdk/bundles/cdk.umd.js', 
     '@angular/cdk/a11y': 'npm:@angular/cdk/bundles/cdk-a11y.umd.js', 
     '@angular/cdk/bidi': 'npm:@angular/cdk/bundles/cdk-bidi.umd.js', 
     '@angular/cdk/coercion': 'npm:@angular/cdk/bundles/cdk-coercion.umd.js', 
     '@angular/cdk/collections': 'npm:@angular/cdk/bundles/cdk-collections.umd.js', 
     '@angular/cdk/keycodes': 'npm:@angular/cdk/bundles/cdk-keycodes.umd.js', 
     '@angular/cdk/observers': 'npm:@angular/cdk/bundles/cdk-observers.umd.js', 
     '@angular/cdk/overlay': 'npm:@angular/cdk/bundles/cdk-overlay.umd.js', 
     '@angular/cdk/platform': 'npm:@angular/cdk/bundles/cdk-platform.umd.js', 
     '@angular/cdk/portal': 'npm:@angular/cdk/bundles/cdk-portal.umd.js', 
     '@angular/cdk/rxjs': 'npm:@angular/cdk/bundles/cdk-rxjs.umd.js', 
     '@angular/cdk/table': 'npm:@angular/cdk/bundles/cdk-table.umd.js', 
     '@angular/cdk/scrolling': 'npm:@angular/cdk/bundles/cdk-scrolling.umd.js',