3

Dart コードからルート要素にアクセスする必要があるコンポーネントがあります。Angular.js と Angular.dart の違いを読んで? ここで SO と AngularDart ソース コードを調べてみると、明示的に型指定された引数をコンストラクターに提供する必要があることがわかりました。引数の 1 つに type がある場合dom.Element、Angular インジェクターによってコンポーネント ルートへの参照が与えられます。(コンストラクターの引数に型がない場合NoSuchMethodError : method not found: 'simpleName'、Angular 内部の深いところから例外がスローされます。) 私のコードは次のようになります。

@ng.NgComponent (
    selector: 'math',
    templateUrl: 'packages/embarassing_name_of_my_package/math/math_component.html',
    publishAs: 'ctrl'
)
class MathComponent {
  ng.Scope _scope;
  dom.Element _element;
  ng.NgModel _ngModel;
  ng.NodeAttrs _attrs;

  MathComponent(this._scope, this._element, this._ngModel, this._attrs);

  …
}

ng_ dom_

import 'package:angular/angular.dart' as ng;
import 'dart:html' as dom;

今質問です。インジェクターが反応する特別なタイプを見つけるにはどうすればよいですか?

さらに、知りたいのですが、どこかに文書化されていますか? どこ?そうでない場合、AngularDart ソースのどこでインジェクターがこのように動作するように構成されていますか?

4

1 に答える 1

1

クラスは、Module.type()メソッド (またはファクトリ、値) を使用して登録されます。

Angular.dart のソース を見ることができます- lib/core/module.dart のように「type(」を検索してください

type(が関数名でない結果は無視してください)

Angular によって呼び出されるコンストラクターまたはメソッドがパラメーターを必要とする場合、DI は登録された型/値/ファクトリを検索し、提供されたインスタンス (値) を使用するか、新しいインスタンス (型) を作成するか、ファクトリが返す結果を使用して注入します。

于 2013-12-21T10:05:35.240 に答える