ng2-material TypeError:all_2.Media.hasMedia不是函数

时间:2016-04-13 19:18:00

标签: angular angular-material

我正在尝试将 ng2-material 与angular2一起使用。

在尝试 Sidenav 组件时,我收到了以下错误:

  

EXCEPTION:TypeError:all_2.Media.hasMedia不是[hasMedia(' gt-sm')中的函数? '侧' :' over'在AppComponent @ 17:32]

     

EXCEPTION:错误:未捕获(在承诺中):EXCEPTION:TypeError:all_2.Media.hasMedia不是[hasMedia(' gt-sm')中的函数? '侧' :' over'在AppComponent @ 17:32]   原始异常:TypeError:all_2.Media.hasMedia不是函数   原装STACKTRACE:   TypeError:all_2.Media.hasMedia不是函数       在AppComponent.hasMedia(http://localhost:3000/app/app.component.js:67:40)       在AbstractChangeDetector.ChangeDetector_AppComponent_0.detectChangesInRecordsInternal(viewFactory_AppComponent:114:31)       在AbstractChangeDetector.detectChangesInRecords(http://localhost:3000/node_modules/angular2/bundles/angular2.dev.js:9609:14)       在AbstractChangeDetector.runDetectChanges(http://localhost:3000/node_modules/angular2/bundles/angular2.dev.js:9592:12)       在AbstractChangeDetector._detectChangesInViewChildren(http://localhost:3000/node_modules/angular2/bundles/angular2.dev.js:9671:14)       在AbstractChangeDetector.runDetectChanges(http://localhost:3000/node_modules/angular2/bundles/angular2.dev.js:9596:12)       在AbstractChangeDetector.detectChanges(http://localhost:3000/node_modules/angular2/bundles/angular2.dev.js:9581:12)       在ChangeDetectorRef_.detectChanges(http://localhost:3000/node_modules/angular2/bundles/angular2.dev.js:5252:16)       在http://localhost:3000/node_modules/angular2/bundles/angular2.dev.js:12954:27       at Array.forEach(native)   错误背景:   [object Object]

还有更多与all_2.Media.hasMedia

相关的错误

可能这是可能导致它的代码

hasMedia(breakSize: string): boolean {
    return Media.hasMedia(breakSize);
}

我已经关注了instructions on ng2-material site并且已经使用了ng2-material。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

最初在ng2-material上发布的代码示例已使用固定版本进行了更新。这也让我感到沮丧,我也看到了Shri发布的相同错误。修复方法是将Media注入到类中并使用类本地版本:

constructor(public sidenav: SidenavService,
            public media: Media) {
}

hasMedia(breakSize: string): boolean {
    return this.media.hasMedia(breakSize);
}

现在在ng2-material网站上解释:

https://justindujardin.github.io/ng2-material/#/components/sidenav