引入MdDialog报错,Error: No provider for MdDialog!

来源:2-10 对话框的使用

lilisheng

2017-08-03

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

import { MdDialog } from '@angular/material';

import { NewProjectComponent } from '../new-project/new-project.component';


@Component({

    selector: 'app-project-list',

    templateUrl: './project-list.component.html',

    styleUrls: ['./project-list.component.scss']

})

export class ProjectListComponent implements OnInit {


    projects = [

        {

            "name": "企业协作平台",

            "desc": "这是一个企业内部项目",

            "coverImg": "assets/img/covers/0.jpg"

        },

        {

            "name": "企业协作平台",

            "desc": "这是二个企业内部项目",

            "coverImg": "assets/img/covers/1.jpg"

        }

    ];


    constructor(private dialog: MdDialog) { }

    

    ngOnInit() {

    }


    openNewProjectDialog() {

    // this.dialog.open(NewProjectComponent);

    }

}



ERROR Error: Uncaught (in promise): Error: No provider for MdDialog!

Error: No provider for MdDialog!

    at injectionError (core.es5.js:1169)

    at noProviderError (core.es5.js:1207)

    at ReflectiveInjector_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_._throwOrNull (core.es5.js:2649)

    at ReflectiveInjector_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_._getByKeyDefault (core.es5.js:2688)

    at ReflectiveInjector_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_._getByKey (core.es5.js:2620)

    at ReflectiveInjector_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_.get (core.es5.js:2489)

    at resolveNgModuleDep (core.es5.js:9473)

    at NgModuleRef_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.NgModuleRef_.get (core.es5.js:10555)

    at resolveDep (core.es5.js:11058)

    at createClass (core.es5.js:10911)

    at injectionError (core.es5.js:1169)

    at noProviderError (core.es5.js:1207)

    at ReflectiveInjector_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_._throwOrNull (core.es5.js:2649)

    at ReflectiveInjector_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_._getByKeyDefault (core.es5.js:2688)

    at ReflectiveInjector_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_._getByKey (core.es5.js:2620)

    at ReflectiveInjector_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_.get (core.es5.js:2489)

    at resolveNgModuleDep (core.es5.js:9473)

    at NgModuleRef_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.NgModuleRef_.get (core.es5.js:10555)

    at resolveDep (core.es5.js:11058)

    at createClass (core.es5.js:10911)

    at resolvePromise (zone.js:783)

    at resolvePromise (zone.js:754)

    at zone.js:831

    at ZoneDelegate.webpackJsonp../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:424)

    at Object.onInvokeTask (core.es5.js:3881)

    at ZoneDelegate.webpackJsonp../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:423)

    at Zone.webpackJsonp../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:191)

    at drainMicroTaskQueue (zone.js:595)

    at <anonymous>

defaultErrorLogger @ core.es5.js:1020

webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.ErrorHandler.handleError @ core.es5.js:1080

next @ core.es5.js:4502

schedulerFn @ core.es5.js:3635

webpackJsonp../node_modules/rxjs/Subscriber.js.SafeSubscriber.__tryOrUnsub @ Subscriber.js:238

webpackJsonp../node_modules/rxjs/Subscriber.js.SafeSubscriber.next @ Subscriber.js:185

webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber._next @ Subscriber.js:125

webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next @ Subscriber.js:89

webpackJsonp../node_modules/rxjs/Subject.js.Subject.next @ Subject.js:55

webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.EventEmitter.emit @ core.es5.js:3621

onHandleError @ core.es5.js:3912

webpackJsonp../node_modules/zone.js/dist/zone.js.ZoneDelegate.handleError @ zone.js:395

webpackJsonp../node_modules/zone.js/dist/zone.js.Zone.runGuarded @ zone.js:157

_loop_1 @ zone.js:666

api.microtaskDrainDone @ zone.js:675

drainMicroTaskQueue @ zone.js:603


写回答

3回答

接灰的电子产品

2017-08-03

你要导入 MdDialogModule 啊,在 SharedModule 中的 imports 和 exports 数组中分别列出 MdDialogModule,然后在 ProjectModule 中导入 SharedModule

4
1
lilisheng
非常感谢! 多谢老师
2017-08-03
共1条回复

ronnychan

2020-02-12

我也遇到了同样的问题,在 SharedModule 中的 imports 和 exports 数组中分别列出 MdDialogModule就好了,视频好像真没写到...

1
0

dds813

2017-09-27

的确是这样,但是我看了好几遍视频,视乎都没有这里,还是我看的不仔细呢

0
0

Angular打造企业级协作平台,让你在Angular领域中出类拔萃

全网首个介绍官方 Material 组件库用法与 Redux 在 Angular 中的应用

998 学习 · 536 问题

查看课程