1

を作成NgComponentし、マークアップで宣言しました。コンポーネント要素を照会して、関連するNgComponentインスタンスを取得することはできますか?

4

1 に答える 1

4

通常、要素を介してコントローラーにアクセスする必要はありません。そうは言っても、イントロスペクション APIがあります。ngDirectives指定されたノードのすべてのコントローラーのリストを返します。しかし、知る限り、デバッグのみを目的としています。

または、子コンポーネント/ディレクティブ/コントローラーにアクセスする必要がある場合は、次のパターンを検討してください。

<tabs>
  <pane title="Pane A">...</pane>
  <pane title="Pane B">...</pane>
  <pane title="Pane C">...</pane>
</tabs>
@NgComponent(
    selector: 'tabs',
    visibility: NgDirective.DIRECT_CHILDREN_VISIBILITY
)
class Tabs {
  List<Pane> _panes;

  registerPane(Pane pane) {
    _panes.add(pane);
  }
}

@NgComponent(
    selector: 'pane'
)
class Pane {
  @NgAttr('title')
  String title;

  Pane(Tabs tabs) {
    tabs.registerPane(this);
  }
}

ペインがインスタンス化されると、ペインはタブ コンテナに自己登録され、その後、タブ コンテナはペイン インスタンスにアクセスできます。

于 2014-01-24T14:07:02.857 に答える