jbo*_*the 6 angular-material angular
使用时<md-icon>出现此错误:
原始异常:没有 Http 提供者!
所以我添加HTTP_PROVIDERS到我的组件中并解决了这个问题。所以我的问题...为什么我需要添加HTTP_PROVIDERS到我的组件才能开始<md-icon>工作,即使我没有HTTP_PROVIDERS在我的应用程序中使用?
这是我的工作组件。从提供者数组中删除HTTP_PROVIDERS会引发上述错误。
import { Component } from '@angular/core';
import { HTTP_PROVIDERS } from '@angular/http';
import { MdIcon, MdIconRegistry } from '@angular2-material/icon';
@Component({
moduleId: module.id,
selector: 'foo-app',
template: `<md-icon>face</md-icon>`,
directives: [ MdIcon ],
providers: [MdIconRegistry, HTTP_PROVIDERS]
})
export class FooAppComponent {
title = 'Material 2 Foo App';
}
Run Code Online (Sandbox Code Playgroud)
另请注意,这一行将显示没有 Http 错误且不需要的图标HTTP_PROVIDERS:
<i class="material-icons">face</i>
Run Code Online (Sandbox Code Playgroud)
查看一下 Angular2-Material 的源代码,md-icon 取决于 Angular2,Http这就是您看到需要 HTTP_PROVIDERS 的原因。
这是来源的链接: https ://github.com/angular/material2/blob/master/src/components/icon/icon.ts
在 /src/components/icon/icon.ts 中,该类需要MdIconRegistry具有MdIcon构造函数:
constructor(
private _element: ElementRef,
private _renderer: Renderer,
private _mdIconRegistry: MdIconRegistry) { }
Run Code Online (Sandbox Code Playgroud)
并MdIconRegistry要求Http具有MdIconRegistry构造函数:
constructor(private _http: Http) {}
Run Code Online (Sandbox Code Playgroud)
我猜 Http 可能是用来从 url 获取图标的?因此,如果您深入研究源代码几层,您可以在那里找到 Http。
| 归档时间: |
|
| 查看次数: |
5816 次 |
| 最近记录: |