Javascript 加载具有不同参数的同一页面时,同一函数不起作用

Javascript 加载具有不同参数的同一页面时,同一函数不起作用,javascript,angular,ionic4,Javascript,Angular,Ionic4,我正在开发一个ionic应用程序,其中列出了一些产品。当我输入产品详细信息时,有一些按钮可以将其下面的div从none更改为inline block,从inline block更改为none。这个很好用。 但是,当我导航到同一个url,但使用url产品详细信息中的不同参数(另一个产品)时,按钮不会更改divs样式 ngOnInit() { if (this.route.snapshot.data['special']) { this.product = t

我正在开发一个ionic应用程序,其中列出了一些产品。当我输入产品详细信息时,有一些按钮可以将其下面的div从none更改为inline block,从inline block更改为none。这个很好用。 但是,当我导航到同一个url,但使用url产品详细信息中的不同参数(另一个产品)时,按钮不会更改divs样式

ngOnInit() {
        if (this.route.snapshot.data['special']) {
            this.product = this.route.snapshot.data['special'];
        }
    }
ionViewDidEnter() {
        this.closeDivs();
    }
unWrapDiv(id) {
        let div = document.getElementById(id);
        if (div.style.display === "none") {
            div.style.display = "inline-block";
        }
        else {
            div.style.display = "none";
        }
    }
openDetail(item) {
        this.providerService.setData(item.id, item);
        this.router.navigateByUrl('product-detail/' + item.id);
    }

使用angular时直接操作DOM不是一个好主意…如果需要隐藏或显示某些元素,最好在html元素上使用ngIf或[hidden]属性。使用angular时直接操作DOM不是一个好主意…如果需要隐藏或显示某些元素,最好使用ngIf或[hidden]属性设置在html元素上。