Показать сообщение отдельно
  #3 (permalink)  
Старый 09.11.2019, 07:38
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Набросал за ночь что-то такое:
const schema = {
      networkGateways: {
        affects: ['gatewayId=gateways.id', 'networkId=networks.id'],
        source: this.networkGateways
      },
      networks: {
        affects: ['id=networkGateways.networkId', '~countryId=countries.id'],
        source: this.networks
      },
      gateways: {
        affects: ['id=networkGateways.gatewayId'],
        source: this.gateways
      },
      countries: {
        affects: ['id=networks.countryId'],
        source: this.countries
      }
    };

    this.richFilter = new RichFilter(schema);

    const newFilteredLists = this.richFilter.update('countries', this.chosenCountryIds);

    Object.assign(this.filteredLists, newFilteredLists); // Дальше фреймворк обновит UI

newFilteredLists - объект с такими же полями как у schema, но вместо значений отфильтрованные списки с учетом всех зависимостей.

Не хочу писать велосипеды, может быть кто-то видел что-нибудь подобное?
Ответить с цитированием