以下setData函数在来自子组件的表内滚动时被触发,

this.buttonDisabled:boolean = true;

setData(value: boolean) {
  this.name = value;
  this.buttonDisabled = false;
}

但是,如果我返回到另一个页面并再次返回到旧页面,则this.buttonDisabled值将重置.如何防止重置该值?

推荐答案

您可以将最后一个值存储在服务中,并在需要时获取它,确保在不再需要它的时候重置该值,以避免错误.

ts

import { Component, OnInit } from '@angular/core';
import {
  ActivatedRoute,
  NavigationEnd,
  Router,
  RoutesRecognized,
} from '@angular/router';
import { filter, pairwise } from 'rxjs/operators';
import { DummyService } from '../dummy.服务';
import { RouterExtService } from '../router-ext.服务';

@Component({
  selector: 'app-student',
  templateUrl: './student.component.html',
  styleUrls: ['./student.component.css'],
})
export class StudentComponent implements OnInit {
  prevUrl: string;
  currentUrl: string;

  setData(value: boolean) {
    this.dummyService.buttonDisabled = value;
  }

  get buttonDisabled() {
    return this.dummyService.buttonDisabled;
  }

  constructor(
    private routerExtService: RouterExtService,
    private dummyService: DummyService
  ) {}
  ngOnInit() {}

  showUrl = () => {
    let previous = this.routerExtService.getPreviousUrl();
    console.log('previous', previous);

    let getCurrentUrl = this.routerExtService.getCurrentUrl();
    console.log('getCurrentUrl', getCurrentUrl);
  };
}

服务

import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root',
})
export class DummyService {
  buttonDisabled: boolean = false;
  constructor() {}
}

stackblitz

Angular相关问答推荐

仅在从forkJoin获得数据后订阅主题

角material 17 -如何从Style.scss中的主题中获取原色

独立组件;依赖项注入

如何使用解析器处理Angular 路由中存储的查询参数以避免任何额外的导航?

Ng serve不工作,没有错误或消息来显示问题所在

如何处理后端删除元素后元素列表的刷新

如何根据响应变化更改 Angular Carousel 的cellsToShow

在 angular2 中,如何获取在为 @Input 发送的对象上更改的属性的 onChanges

如何使用ngrx和effects 订阅成功回调

Observable.forkJoin 和数组参数

Angular 2: Debounce(ngModelChange)?

在 Ionic 2 中使用 NodeJS.Timer 时找不到命名空间 NodeJS

如何在 Angular 4 中使用 Material Design 图标?

无法绑定到matMenuTriggerFor,因为它不是 button的已知属性

如何使用 Bootstrap 4 flexbox 填充可用内容?

如何从组件模板将数组作为 Input() 传递?

Angular2material对话框自动关闭

Angular 2 可用的 yeoman 生成器

Angular 2 单元测试 - 出现错误无法加载ng:///DynamicTestModule/module.ngfactory.js

Firestore 从集合中获取文档 ID