私は角度2で始まりましたが、面白いと感じました。しかし、過去数日から何かにぶつかり、私を助けてくれる人が必要です。角度2のコンポーネントを繰り返さずに再帰的にテンプレートを繰り返します。
シナリオ:
は階層構造で、チェックボックスで選択ボックスを構築しています。
A
|---A1
|---A2
|---A2.1
|---A2.2
|.....
|.....
したがって、Webサービスはこのデータ構造をjson形式で返します。
@Component({
selector: 'tree-view',
template: `<ul>
<li *ngFor="let items of data">
<a href="javascript:void(0);"
(click)="toggleMultiSelect($event,[items])">
<input type="checkbox" name="{{items.name}}"
[checked]="getChecked(items.id)"
id="{{items.id}}">
<label [attr.for]="items.id" class="custom-unchecked">{{items.name}}</label>
</a>
<tree-view
*ngIf="items.children && items.children.size > 0"
(isSelected)="resultChild($event)"
[data]="items.children"></tree-view>
</li>
</ul>`,
directives: [ MultiHierarchyTreeViewComponent ]
})
それでは、私がやっていることは、データがそれを子供を持っている場合、私はチェックしています:ので、私はそれが私が行っていることである現在
を持つことになり、階層の子どもの数を認識しませんセレクタをもう一度繰り返します。これは、選択ボックスの階層構造をもたらします。
しかし、問題は、私は現在、それをテンプレートと一緒にクラスを繰り返しているので、これはすべて、親の選択を解除し、すべての選択をしている、唯一のテンプレートを繰り返す必要がある - 困難な児童の選択操作を。
私は<template>
が私の問題を解決すると思っていましたが、
私はこの問題を解決するために過去2日間から私の頭を壊していますが、毎回否定的な反応を得ています。
私はコンポーネントを繰り返すのが最も簡単な方法だと思います。 https://angular.io/docs/ts/latest/api/common/index/NgTemplateOutlet-directive.htmlを使用することもできますが、それは私にとってはもっと複雑に思えます。 –
この関連する質問もおもしろいかもしれません。http://stackoverflow.com/questions/39698833/angular2-recursive-tree-expand-all/39699104?noredirect=1#comment66701422_39699104 –
関連項目http://stackoverflow.com/question/37746516/use-component-in-itself/37747022#37747022 –