gpt4 book ai didi

dependency-injection - AngularDart 依赖注入(inject)是如何工作的?

转载 作者:行者123 更新时间:2023-12-04 08:21:00 26 4
gpt4 key购买 nike

我有一个组件需要从 Dart 代码访问它的根元素。通过阅读Differences between Angular.js and Angular.dart?在 SO 上,在 AngularDart 源代码中四处搜寻,我发现我需要的是提供一个带有显式类型参数的构造函数。如果其中一个参数的类型为 dom.Element,Angular 注入(inject)器将向其提供对我的组件根目录的引用。 (在构造函数参数上没有类型会导致异常 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);


}

ngdom

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

现在是问题。我如何才能最好地发现注入(inject)器所 react 的那些特殊类型?

此外,我想知道:它是否记录在某处?在哪里?如果不是,在 AngularDart 源代码的哪个位置将注入(inject)器配置为这样的行为?

最佳答案

使用 Module.type() 方法(或工厂、值)注册类。

可以看看Angular.dart source - search for 'type(' like lib/core/module.dart

(请忽略type不是函数名的结果)

当 Angular 调用的构造函数或方法需要参数时,DI 查找其注册的类型/值/工厂并使用提供的实例(值)或创建新实例(类型)或使用工厂返回的结果和注入(inject)它。

关于dependency-injection - AngularDart 依赖注入(inject)是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20712318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com