【问题标题】:How to restore previous changes in angular 8如何恢复angular 8中的先前更改
【发布时间】:2020-02-04 04:43:49
【问题描述】:

我正在尝试恢复以前的更改。例如,如果我在选项卡一中选择了复选框和下拉值,然后单击选项卡二并选择了一些下拉值,然后单击选项卡一。现在我想查看我以前在复选框和下拉列表中的更改.我们怎么做?角度 8 有可能吗?

app.component.html:

<my-tabs (selectedTabClick)="test($event,'tab_one')">
  <my-tab [tabTitle]="'Tab 1'"  id="tab_one" #tab_one>
  <div *ngIf="tabflag.tab_one">
    <table>....</table>
  </div>
  </my-tab>
  <my-tab tabTitle="Tab 2" id="tab_two" #tab_two>
  <div *ngIf="tabflag.tab_two">
  <table>....</table>
  </div>

  </my-tab>
</my-tabs>

演示:https://stackblitz.com/edit/angular-tabs-example-6a8jmb?file=app%2Fapp.component.html

【问题讨论】:

    标签: typescript angular7 angular8


    【解决方案1】:

    你好 @Nila Vanni 你可以使用 [hidden] 属性,如果你使用 *ngIf 它将在条件下运行,如果条件不满足,那么它将从 DOM 所以你需要做一些代码,这里是代码

    1. [hidden]="tabflag.tab_one"代替*ngIf="tabflag.tab_one"
    2. [hidden]="tabflag.tab_two"代替*ngIf="tabflag.tab_two"
    3. 输入tabflag={ tab_one:true, tab_two:false }

    最后将方法test(event)方法放入ts

    test(event){
        console.log(event);
        if(event.tab.id == 'tab_one') {
          this.tabflag.tab_one = false;
          this.tabflag.tab_two = true;
        } 
    
        if(event.tab.id == 'tab_two'){
          this.tabflag.tab_two = false;
          this.tabflag.tab_one = true;
        }
      }
    

    【讨论】:

    • 表格数据将更像 100 行,所以我使用 ngIf 进行延迟加载。那么如何使用隐藏?
    • 延迟加载在做什么,如果你使用*ngIf,那么它将根据条件刷新,所以你不能使用*ngIf
    • 你正在使用普通表使用primeng表它会给出使用属性只是你需要放入表标签检查here
    • 是的..我将使用primeng表。你能在标签内使用primeng表吗?
    • 是的。我可以使用但我要求 rxjs 状态管理进行恢复? rxjs状态管理如何实现?
    猜你喜欢
    • 2017-09-25
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2011-10-21
    相关资源
    最近更新 更多