Перейти к маршруту без потери данных из текущей наблюдаемой - PullRequest
0 голосов
/ 26 февраля 2019

Я немного запутался, как это сделать.Я продолжаю терять любые изменения, которые я делаю.У меня есть это в качестве декларации навигации по маршруту:

const route: Routes = [
...

    {
        path: 'configs',
        redirectTo: 'configs/entry1'
    },
    {
        path: 'configs/:name',
        component: configPageComponent
    }
...

Я хорошо ориентируюсь, но когда я прыгаю между именами, я теряю данные, которые я отредактировал в виде материала:

<div id="infoDiv">
  <mat-form-field>
    <input matInput id="settingsSearch" placeholder="Search">
  </mat-form-field>
  <mat-accordion>
    <mat-expansion-panel #panel_{{databaseName}} expanded="true" hideToggle="true" (click)="changeSetting(this, $event)">
        <mat-expansion-panel-header>
        <mat-panel-title class="tableTitle">
          <span style="display: flex; align-items: top;" class="{{arrowClass}}">
              <svg xmlns="http://www.w3.org/2000/svg"
                  width="30"
                  height="30"
                  viewBox="0 0 30 20">
              <path d = "M3 3 L3 17 L20 10 z" stroke = "#3e6487" stroke-width = "2" fill = "#5b9bd5"/>
            </svg>
          </span>
          <span style="display: flex; align-items: center;" class="settingName">{{databaseName}}&nbsp;&nbsp;Settings</span>
        </mat-panel-title>
      </mat-expansion-panel-header>
  <div style="display: flex; align-items: center;" *ngFor="let settingValues of dbSettings | async; let index = index; trackBy:trackByIndex;">
    <span class="propertyKey" id="settingValues.configName">{{settingValues.configurationName}}</span>
        <mat-form-field class="propertyValue">
          <input matInput [(ngModel)]="settingValues.configValue" id="{{settingValues.configValue}}">
        </mat-form-field>
      </div>
    </mat-expansion-panel>
  </mat-accordion>
</div>

Я могу редактировать поля ввода, но когда я переключаюсь на другую запись в этом списке:

<div id="configList">
  <h1>Services:</h1>
  <mat-list>
    <h3 matSubheader><span class="healthIconDiv">Health</span><span class="nameDiv">Service</span></h3>
    <mat-list-item *ngFor="let listEntry of dbList | async; last as last">
      <div class="healthIconDiv">
        <div class="healthIcon">TBD</div>
      </div>
      <a routerLink="/config/{{listEntry}}" routerLinkActive="active" class="nameDiv listName">{{listEntry}}</a>
      <mat-divider [inset]="true" *ngIf="!last"></mat-divider>
    </mat-list-item>
  </mat-list>
  <div class="healthIconDiv">
    <div class="healthIcon  goodHealth"></div><div class="healthStatus">Healthy</div>
  </div>
  <div class="healthIconDiv">
    <div class="healthIcon  badHealth"></div><div class="healthStatus">Poor Health</div>
  </div>
 </div>

Я теряю то, что отредактировал.Как сохранить данные, которые я отредактировал, когда я переключаюсь на конфигурацию данных другой базы данных?

Это может помочь:

page: https://angular -w6bzvw.stackblitz.io /конфигурация

редактировать: https://stackblitz.com/edit/angular-w6bzvw

1 Ответ

0 голосов
/ 04 марта 2019

Спасибо всем за помощь.Я думаю, что это могло бы помочь другим людям, если у них возникли такие проблемы.

https://stackblitz.com/edit/angular-wthbaq

Это половинчатое решение, которое я придумал, с некоторой помощью коллеги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...