首页 文章

Angular 4切换选项卡时保留输入值

提问于
浏览
1

我使用ng-bootstrap创建3个选项卡,每个选项卡是共同父组件内的单独组件 . 每个子组件包含多个文本输入,当我在子组件之间切换时,输入文本值消失 . 切换标签时如何保留所有输入值?

4 回答

  • 3

    您需要在某处存储值,当您更改Tab时,DOM会刷新,因此您输入了输入 .

    创建一个对象来保存数据并在路径参数中传递对象以始终保留它 .

    或者,您可以使用localStorage保存对象并在ngInit方法上获取它 .

  • 0

    您可以将值存储在一个服务中,然后在 ngOnInit() 方法中读回,或者可以使用 localStorage ,如here所示,以 ngOnInit() 方式读回结果,这是您在 ngOnDestroy() 方法中保存的结果 . 这里有必要对这些lifecycle方法进行一些了解 .

  • 2

    您可以使用NgbTabsetdestroyOnHide 属性 . 用法:

    <ngb-tabset [destroyOnHide]="false">
        <ngb-tab>
            <ng-template ngbTabTitle>
                <div>Title 1</div>
            </ng-template>
            <ng-template ngbTabContent>
                <!-- Component One-->
            </ng-template>
        </ngb-tab>
        <ngb-tab>
            <ng-template ngbTabTitle>
                <div>Title 2</div>
            </ng-template>
            <ng-template ngbTabContent>
                <!-- Component two-->
            </ng-template>
        </ngb-tab>
    <ngb-tabset>
    
  • 0

    您可以构建服务以保留值 .

    像这样简单的东西会做:

    import { Injectable } from '@angular/core';
    
    @Injectable()
    export class InputService {
      lastName: string;
      firstName: string;
    
      constructor() { }
    
    }
    

    只需将此服务注入三个选项卡组件中的每一个 . 然后,他们可以将值设置到服务中并从服务中读取值 .

相关问题