Angular2フィルタリングチェックボックス

リンカーンバス

ファブリックの配列を含むAngular2グリッドがあります。これらのファブリックには、色やファブリックタイプなどのプロパティがあります。現在、グリッドにはそれらがすべて表示されています。色と生地の種類のチェックボックスをいくつか用意し、その横に量を表示する必要があります。グリッドには、フィルターを適用するボタンがクリックされた後にのみ、フィルターされたファブリックが表示されます。ただし、チェックボックスを選択すると、他のチェックボックスの数が変わります。

ここに画像の説明を入力してください

誰かがこれについて最善の方法としていくつかの洞察を提供できますか?私は今のところすべてのデータを持っています。パイプやフィルタリングサービスを作成しますか、それともフォームを作成しますか?

**モデル**

ProductConfigurationOptionは、オプション選択の全体的な親です。ファブリックはConfigurationOptionです。

configuration-option-choiceは、TanChenilleなどの特定のファブリックです。個々のConfigurationOptionChoiceには、多くのOptionChoicePropertiesがあります。

product-configuration-option.ts

import { ProductConfigurationOptionChoice } from './product-configuration-option-choice';
import { IProductConfiguratorOptionChoiceProperties } from '../Interfaces/iproduct-configurator-option-choice-properties';
import { IProductConfigurationOptionChoice } from '../Interfaces/iproduct-configuration-option-choice';
import { IProductConfigurationOption } from '../Interfaces/iproduct-configuration-option';

export class ProductConfigurationOption implements IProductConfigurationOption {
   constructor(
        public ConfiguratorID: number,
        public OptionID: number,
        public OptionName: string,
        public OptionDescription: string,
        public OptionSortOrder: number,
        public SKUPartOrdinal: number,
        public ProductConfigurationOptionChoice: IProductConfigurationOptionChoice[],
        public OptionChoicesProperties: IProductConfiguratorOptionChoiceProperties[]
    ) {

    }
}

product-configuration-option-choice.ts

import { ProductConfiguratorOptionChoiceProperties } from '../Models/product-configurator-option-choice-properties';
import { IProductConfiguratorOptionChoiceProperties } from '../Interfaces/iproduct-configurator-option-choice-properties';
import { IProductConfigurationOptionChoice } from '../Interfaces/iproduct-configuration-option-choice';
export class ProductConfigurationOptionChoice implements IProductConfigurationOptionChoice {
    public OptionChoiceID: number;
    public OptionID: number;
    public OptionValue: string;
    public OptionChoiceName: string;
    public OptionChoiceDescription: string;
    public SKUPart: string;
    public ImageURL: string;

    public SortOrder: number;
    public PriceOffset: number;
    public OptionChoiceProperties: IProductConfiguratorOptionChoiceProperties[];
    constructor( ){

    }

     setOptionChoiceProperties(optionProperties: ProductConfiguratorOptionChoiceProperties[]) {
        this.OptionChoiceProperties = optionProperties;
    }
}

product-configurator-option-choice-properties.ts

import { IProductConfiguratorOptionChoiceProperties } from '../Interfaces/iproduct-configurator-option-choice-properties';
export class ProductConfiguratorOptionChoiceProperties implements IProductConfiguratorOptionChoiceProperties {
      constructor(
        public OptionChoiceId: number,
        public PropertyId: number,
        public Name: string,
        public Value: string
    ) {

    }
}

現在、OptionChoicePropertiesを取得してその数を取得し、チェックボックスを作成しようとしています。次に、フィルターが適用されたときにOptionChoicePropertiesの量を動的に変更する方法を理解しようとします。

0mpurdy

パイプ使用して、アイテムの配列をフィルタリングできます

フィルターパイプ

@Pipe({name: 'fabricType'})
export class FabricTypePipe implements PipeTransform {
  transform(fabrics: any[], fabricTypes: string[]): any[] {
    if (!fabricTypes || fabricTypes.length === 0) return fabrics;
    return fabrics.filter(fabric => fabricTypes.includes(fabric.type));
  }
}

テンプレート

<div *ngFor="let colour of fabricColours">
  <input type="checkbox" [(ngModel)]="colour.selected" />{{fabrics | fabricType: types | countColour: colour.name}} {{colour.name}}
</div>

<div *ngFor="let fabric of fabrics | fabricType: types">{{fabric.name}}</div>

types静的な場合があります。たとえば['weave','phur']、変数(配列)またはメソッド(配列を返します)。

使用できるアイテムの数を数えるには、パイプも使用します

カウントパイプ

@Pipe({name: 'countColour'})
export class CountColourPipe implements PipeTransform {
  transform(fabrics: any[], colour: string): number {
    if (!fabrics || fabrics.length === 0) return 0;
    return fabrics.reduce((count, fabric) => fabric.colour === colour ? count + 1 : count, 0);
  }
}

カウントの変化を示すGIF

ここに画像の説明を入力してください

ライブプランカーの例

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

チェックボックスでテーブルをフィルタリングする

VueJSによるチェックボックスフィルタリング

デフォルトでAngular2チェックラジオボタン

Angular2 / 4-リアクティブフォームとラジオボタン:デフォルトでチェックする方法

チェックボックスでフィルタリングする複数のカテゴリ

IonicでのAngular2リアクティブフォームチェックボックスの検証

IonicでのAngular2リアクティブフォームチェックボックスの検証

yii2グリッドビューでコンボフィルターをチェックボックスフィルターに変更します

Angularとチェックボックスを使用したデータのフィルタリング

チェックボックスでGoogleマップマーカーをフィルタリングする

ブール列でp:datatableをフィルタリングします(チェックボックス)

チェックボックスの問題でフィルタリング[reactjs]

複数のチェックボックスフィルタリングphp

Jqueryの複数のチェックボックスフィルタリング

jQuery DataTables:複数のチェックボックスフィルタリング

jqueryajaxを使用したチェックボックスフィルタリング

Primefaces5チェックボックスフィルタリング後の複数選択のバグ

Jqueryチェックボックスフィルタリング-修復

チェックボックスでフィルタリングターゲットdivを表示/非表示jquery

チェックボックスを使用したクラスによる div のフィルタリング

Yii2GridViewフィルタリングにチェックボックスを追加

チェックボックスを使用したテーブルのフィルタリング

データをフィルタリングするための角度チェックボックス

複数のチェックボックスを使用したangular4配列フィルタリング条件

チェックボックスを使用した複数のクラスのフィルタリング

2つのチェックボックス値に基づいてフィルタリングする

リアクティブフォームを備えたAngular2マルチカテゴリチェックボックスフィルター

奇妙なレンダリングをフィルタリングするBlazorチェックボックス

チェックボックスとデータカテゴリで商品をフィルタリングする

TOP 一覧

  1. 1

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    CSSのみを使用して三角形のアニメーションを作成する方法

  4. 4

    ドロップダウンリストで選択したアイテムのQComboBoxスタイル

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  7. 7

    Windows 10でのUSB入力デバイスの挿入/取り外しの検出

  8. 8

    Excel - count multiple words per cell in a range of cells

  9. 9

    PictureBoxで画像のブレンドを無効にする

  10. 10

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  11. 11

    スタート画面にシャットダウンタイルを追加するにはどうすればよいですか?

  12. 12

    Python / SciPyのピーク検出アルゴリズム

  13. 13

    Luaの文字列から特定の特殊文字を削除するにはどうすればよいですか?

  14. 14

    Pythonを使用して、リストからデータを読み取り、特定の値をElasticsearchにインデックス付けするにはどうすればよいですか?

  15. 15

    LinuxでPySide2(Qt for Python)をインストールするQt Designerはどこにありますか?

  16. 16

    goormIDEは、ターミナルがロードするデフォルトプロジェクトを変更します

  17. 17

    QGISとPostGIS(マップポイント(米国の地図上にraduisを使用した緯度と経度)

  18. 18

    MLでのデータ前処理の背後にある直感

  19. 19

    ターミナルから「入力ソースの変更」ショートカットを設定する

  20. 20

    パンダは異なる名前の列に追加します

  21. 21

    同じクラスの異なるバージョンを使用したクラスローディング:java.lang.LinkageError:名前の重複クラス定義を試行しました

ホットタグ

アーカイブ