我正在尝试将 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。
我该如何解决这个问题?
答案 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