检查后表情发生了变化。之前的价值:' initial'。当前价值:'可见'

时间:2017-08-03 12:49:28

标签: javascript html angular typescript material

我试图使用Angular2-Material .. 我已经安装了@ angular2 / material和@ angular2 / cdk并且想要使用SnackBar .. 我已经在@NgModule中导入了MdSnackBarModule 并尝试使用snackBar.open("hello")..

显示小吃栏,文本显示两次:

一旦进入小吃店,一次进入右上角。

我打开了控制台,它向我展示了这个

MdSnackBarContainer_html:1 :
Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'initial'. Current value: 'visible'.

以前有人遇到过这个吗? 感谢。

编辑:

从ngOnInit()中删除后,错误不再出现.. 但是小吃店仍然有缺陷,cdk-visually-hidden类仍然可见。 有什么想法吗?

将代码放在这里是一个问题..因为它位于离线网络中.. 我会通过

转储主要部分

app.module.ts:

    import {MdSnackBarModule, MdIconModule, OVERLAY_PROVIDERS} from "@angular/material";
    ...
    imports: [... MdSnackBarModule, BrowserAnimationsModule, MdIConModule],
    providers: [ OVERLAY_PROVIDERS ]
    ..

.angular-cli.json:

    ...
    "styles": [
    "bootstrap.css"
    ],
    ..

templates.component.ts:

...
@Component({
..
providers: [...MdSnackBar]
..
})
..

public constructor(public snackBar: MdSnackBar...) 
...

public doSomething() {
    this.snackBar.open("Test test test");
}
...

顺便说一下,当我不使用动作时,文本甚至不显示在小吃店上。

1 个答案:

答案 0 :(得分:1)

我通过将snackBar.open方法移动到Component的构造函数而不是在ngOnInit方法中调用它来避免此错误。