siv*_*iva 9 typescript angular-material angular
当我使用mdIcon时,Angular会抛出错误.以下是代码:
import {Component} from '@angular/core';
import {MdIcon} from '@angular2-material/icon';
@Component({
selector: 'my-app',
template: `
<md-toolbar>
<md-icon class="demo-toolbar-icon">menu</md-icon>
<span>Default Toolbar</span>
<span class="demo-fill-remaining"></span>
<md-icon>code</md-icon>
</md-toolbar>`,
directives: [MdIcon,MdToolbar],
})
export class AppComponent {}
Run Code Online (Sandbox Code Playgroud)
错误:
原始例外:没有MdIconRegistry的提供者!错误:NoProviderError.BaseException [作为构造函数](exceptions.ts:14)的异常在NoProviderError.AbstractProviderError [作为构造函数](reflective_exceptions.ts:53)处于新的NoProviderError(reflective_exceptions.ts:85)处于ReflectiveInjector _._ throwOrNull(reflective_injector) .ts:844)在ReflectiveInjector _._ getByKeyDefault(reflective_injector.ts:873)的ReflectiveInjector _._ getByKey(reflective_injector.ts:835),ReflexInjector_.get(reflective_injector.ts:632),位于ElementInjector.get(element_injector.ts:19)at DebugAppView.AppView.create中的DebugAppView._View_AppComponent0.createInternal(AppComponent.template.js:141)(view.ts:110)
谁能帮助我,我在这里做错了什么?
acu*_*ini 12
使用材料alpha 8-4更新2.0.0版本:
您需要MdIconRegistry
在app.modules.ts文件中包含提供程序.这是一个功能性的例子:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { MdButtonModule } from '@angular2-material/button';
import { MdButtonToggleModule } from '@angular2-material/button-toggle';
import { MdCardModule } from '@angular2-material/card';
import { MdCheckboxModule } from '@angular2-material/checkbox';
import { MdGridListModule } from '@angular2-material/grid-list';
import { MdIconModule, MdIconRegistry } from '@angular2-material/icon';
import { MdInputModule } from '@angular2-material/input';
import { MdListModule } from '@angular2-material/list';
import { MdMenuModule } from '@angular2-material/menu';
import { MdProgressBarModule } from '@angular2-material/progress-bar';
import { MdProgressCircleModule } from '@angular2-material/progress-circle';
import { MdRadioModule } from '@angular2-material/radio';
import { MdSidenavModule } from '@angular2-material/sidenav';
import { MdSliderModule } from '@angular2-material/slider';
import { MdSlideToggleModule } from '@angular2-material/slide-toggle';
import { MdTabsModule } from '@angular2-material/tabs';
import { MdToolbarModule } from '@angular2-material/toolbar';
import { MdTooltipModule } from '@angular2-material/tooltip';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
MdButtonModule,
MdButtonToggleModule,
MdCardModule,
MdCheckboxModule,
MdGridListModule,
MdIconModule,
MdInputModule,
MdListModule,
MdMenuModule,
MdProgressBarModule,
MdProgressCircleModule,
MdRadioModule,
MdSidenavModule,
MdSliderModule,
MdSlideToggleModule,
MdTabsModule,
MdToolbarModule,
MdTooltipModule
],
providers: [
MdIconRegistry
],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
import 'hammerjs';
如果要使用md-slide-toggle和md-slider模块,请不要忘记安装hammerjs + typings并添加到main.ts文件中.
您需要将其列入providers
或viewProviders
注册一些图标或图标集
import {Component, ViewEncapsulation} from '@angular/core';
import {MdIcon} from '@angular2-material/icon';
@Component({
selector: 'my-app',
template: `
<md-toolbar>
<md-icon class="demo-toolbar-icon">menu</md-icon>
<span>Default Toolbar</span>
<span class="demo-fill-remaining"></span>
<md-icon>code</md-icon>
</md-toolbar>`,
directives: [MdIcon,MdToolbar],
viewProviders: [MdIconRegistry],
})
export class AppComponent {
constructor(mdIconRegistry: MdIconRegistry) {
mdIconRegistry
.addSvgIcon('thumb-up', '/demo-app/icon/assets/thumbup-icon.svg')
.addSvgIconSetInNamespace('core', '/demo-app/icon/assets/core-icon-set.svg')
.registerFontClassAlias('fontawesome', 'fa');
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6134 次 |
最近记录: |