У меня есть компонент, которому необходимо получить доступ к его корневому элементу из кода Дарта. Прочитав Differences between Angular.js and Angular.dart? здесь, на SO и grepping в исходном коде AngularDart, я понял, что мне нужно предоставить конструктор с явно типизированными аргументами. Если один из аргументов имеет тип dom.Element
, ему будет дана ссылка на мой компонентный корень с помощью углового инжектора. (. В противном случае иметь типов по результатам аргументов конструктора в виде исключения NoSuchMethodError : method not found: 'simpleName'
будучи выброшен из глубоко в угловых внутренностей) Мой код теперь выглядит следующим образом:Как работает инъекция зависимости AngularDart?
@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 инжектор настроен так себя вести?