如何使用不同的方法在angulardart中注册对象

如何使用不同的方法在angulardart中注册对象,dart,angular-dart,Dart,Angular Dart,可以使用值、类型或工厂注册对象。我试图找到如何以及何时使用每种注册类型的简单示例,但没有成功 如果有人能给出简单的例子并解释典型的用例,那就太好了 以下是有关该主题的一些链接: 类型 //旧语法 类型(SomeType);//或 类型(SomeInterface,实现者:SomType) //新语法 绑定(SomeType);//或 绑定(SomeInterface,toImplementation:SomType) 默认情况下,DI创建一个实例和所有构造函数参数(如果有,由DI解析并提供)

可以使用
类型
工厂
注册对象。我试图找到如何以及何时使用每种注册类型的简单示例,但没有成功

如果有人能给出简单的例子并解释典型的用例,那就太好了

以下是有关该主题的一些链接:

类型

//旧语法
类型(SomeType);//或
类型(SomeInterface,实现者:SomType)
//新语法
绑定(SomeType);//或
绑定(SomeInterface,toImplementation:SomType)
默认情况下,DI创建一个实例和所有构造函数参数(如果有,由DI解析并提供)

//以内联方式创建,或作为参数从某处传入
//旧语法
值(新的SomeType('xxx',123));
//新语法
绑定(SomeType,toValue:newsometype('xxx',123));
如果要传递以前实例化的实例。 我通常将其用于配置设置

工厂

//旧语法
工厂(NgRoutingUsePushState,
()=>新的NgRoutingUsePushState.value(false));
//或
工厂(UsersRepository,(Injector inj)=>newusersrepository(inj.get(Http));
//新语法
绑定(NgRoutingUshState,toFactory:
()=>新的NgRoutingUsePushState.value(false));
bind(UsersRepository,toFactory:(Injector inj)=>newusersrepository(inj.get(Http));
(来自)


当您希望DI将实例化委托给工厂函数时

谢谢Gunter。你能多打开一些例子吗?例如,给出一些使用每种类型的示例代码。很抱歉,我刚刚开始学习这些东西,但我无法掌握用例。我通常只使用
类型
。当我无法使用
类型
实现我想要的时,我会考虑使用
(例如,当我想通过配置设置传递对象时,比如从命令行参数或配置文件读取的数据库主机/端口/凭据)。除了上面的第一个示例(我刚刚从angular.dart.tutorial复制而来)之外,我还从未使用过factory(我从未见过它与上面的两个示例一起使用)