将两个变量设置为相同的值会在Angular服务中将它们彼此分配?

时间:2018-06-26 17:47:13

标签: javascript angular typescript

我有一项服务,该服务允许组件将其过滤器分配给其中的一个值,以实现数据永久保留。有两个变量createFiltersmanageFilters分别归因于它们各自的路由,并且其中包含三个功能:setFiltersgetFilterssetAllFilters。 / p>

setAllFilters用于在两个路由中选择父过滤器类别时将两个变量分配给同一数组。但是,一旦调用此函数,则每当我使用setFilters之后,该函数仅应将一个变量分配给一个数组,就会将传递的数组设置为两个值。

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { ItemService } from './item';
import { SetService } from './set';
import { ApplicationStorage, Store } from '../store';

@Injectable()
export class FiltersService {
  public createFilters = [];
  public manageFilters = [];

  constructor(
    private itemService: ItemService,
    private setService: SetService,
    private applicationStorage: ApplicationStorage
  ) { }

  public setFilters(filtersArray, mode) {
    if (mode === 'create') {
      this.createFilters = filtersArray;
    }
    else if (mode === 'manage') {
      this.manageFilters = filtersArray;
    }
  }

  public setAllFilters(filtersArray) {
    this.createFilters = filtersArray;
    this.itemService.searchItems(this.createFilters).subscribe();
    this.manageFilters = filtersArray;
    this.setService.searchSets(this.manageFilters).subscribe();
  }

  public getFilters(mode) {
    if (mode == 'create') {
      return this.createFilters;
    } else if (mode == 'manage') {
      return this.manageFilters;
    }
  }
}

这是我不熟悉的标准行为吗?我不知道为什么会将createFiltersmanageFilters设置为彼此。

0 个答案:

没有答案