3

ISSUEの内側に取​​り込まれていない:Angular2 @ContentChildren親<ng-content>

@ContentChildrenは親に<ng-content>コンテナを動作するようには思えません。 コンテンツがコンポーネントの子であっても。

Plunker:私は{descendants: true}

例のコードを使用しています:https://plnkr.co/edit/J5itJmDfwKwtBsG6IveP?p=preview

NOTE

メインHTML:

<div> 
    <child> 
    <test></test> 
    <test></test> 
    <test></test> 
    </child> 
    <br><br> 
    <parent> 
    <test></test> 
    <test></test> 
    <test></test> 
    </parent> 
</div> 

子コンポーネント:

<h2>Child</h2> 
<parent> 
    <ng-content></ng-content> 
</parent> 

親コンポーネント:

<h3>Parent</h3> 
<ng-content></ng-content> 
<div class='length'>Line count : {{length}}</div> 

問題親成分に対する test成分の長さは、子コンポーネントのために0であるが、3。


詳細コード:

import { 
    Component, ContentChildren, Directive 
} from '@angular/core'; 


@Directive({selector: 'test'}) 
export class Test {} 

@Component({ 
    selector: 'parent', 
    template: ` 
    <h3>Parent</h3> 
    <ng-content></ng-content> 
    <div class='length'>Line count : {{length}}</div> 
    ` 
}) 
export class ParentComponent { 

    @ContentChildren(Test, {descendants: true}) private tests : QueryList<Test>; 

    constructor() { } 

    get length() { 
    return this.tests.length; 
    } 
} 

import { 
    Component 
} from '@angular/core'; 


@Component({ 
    selector: 'child', 
    template: ` 
    <h2>Child</h2> 
    <parent> 
    <ng-content></ng-content> 
    </parent> 
    ` 
}) 
export class ChildComponent { 

    constructor() { } 

} 

enter image description here

答えて

2

ContentChildrencurrent Componentに割り当てられているだけのディレクティブをカウントします。状況に応じてtestディレクティブをChildComponentに割り当てている間は、ChildComponentディレクティブをカウントする必要があります。

これを参照してくださいplunker私はあなたからフォークしました。

+0

このソリューションはうまく機能します。私は角度が上記の機能thoを行うことができるように感じる:( –

+0

@KevinUptonああ、私もそう以前のように感じる。しかし、私はまだいくつかの研究の後に何も見つかりませんでした。 – Pengyy

関連する問題