gpt4 book ai didi

dart - 如何使用不同的方式在angulardart中注册一个对象

转载 作者:行者123 更新时间:2023-12-02 01:51:43 24 4
gpt4 key购买 nike

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

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

这里有一些关于这个主题的链接:

https://stackoverflow.com/a/21245335/2777805

http://victorsavkin.com/post/72452331552/angulardart-for-angularjs-developers-introduction-to

最佳答案

类型

// old syntax
type(SomeType); // or
type(SomeInterface, implementedBy: SomType)

// new syntax
bind(SomeType); // or
bind(SomeInterface, toImplementation: SomType)

默认情况下,DI 创建一个实例和所有构造函数参数(如果有的话由 DI 解析并提供)

值(value)

// created inline or e.g. passed in from somewhere as a parameter
// old syntax
value(new SomeType('xxx', 123));

// new syntax
bind(SomeType, toValue: new SomeType('xxx', 123));

如果你想传递一个先前实例化的实例。我通常将其用于配置设置。

工厂

// old syntax
factory(NgRoutingUsePushState,
(_) => new NgRoutingUsePushState.value(false));

// or
factory(UsersRepository, (Injector inj) => new UsersRepository(inj.get(Http)));

// new syntax
bind(NgRoutingUsePushState,toFactory:
(_) => new NgRoutingUsePushState.value(false));
bind(UsersRepository, toFactory: (Injector inj) => new UsersRepository(inj.get(Http)));

(来自 http://victorsavkin.com/post/72452331552/angulardart-for-angularjs-developers-introduction-to)

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

关于dart - 如何使用不同的方式在angulardart中注册一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22274748/

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