Container

Container Class

PRIVATE

Defined in: packages/container/lib/container.js:23

Module: ember

A container used to instantiate and cache objects.

Every Container must be associated with a Registry, which is referenced to determine the factory and options that should be used to instantiate objects.

The public API for Container is still in flux and should not be considered stable.

destroyprivate

Defined in packages/container/lib/container.js:188

A depth first traversal, destroying the container, its descendant containers and all their managed objects.

factoryFor (fullName, options) Anypublic

Defined in packages/container/lib/container.js:270

Given a fullName, return the corresponding factory. The consumer of the factory is responsible for the destruction of any factory instances, as there is no way for the container to ensure instances are destroyed when it itself is destroyed.

Parameters:

fullName String
options [Object]
source [String]
The fullname of the request source (used for local lookup)

Returns:

Any

lookup (fullName, options) Anyprivate

Defined in packages/container/lib/container.js:85

Given a fullName return a corresponding instance.

The default behaviour is for lookup to return a singleton instance. The singleton is scoped to the container, allowing multiple containers to all have their own locally scoped singletons.

let registry = new Registry();
let container = registry.container();

registry.register('api:twitter', Twitter);

let twitter = container.lookup('api:twitter');

twitter instanceof Twitter; // => true

// by default the container will return singletons
let twitter2 = container.lookup('api:twitter');
twitter2 instanceof Twitter; // => true

twitter === twitter2; //=> true

If singletons are not wanted, an optional flag can be provided at lookup.

let registry = new Registry();
let container = registry.container();

registry.register('api:twitter', Twitter);

let twitter = container.lookup('api:twitter', { singleton: false });
let twitter2 = container.lookup('api:twitter', { singleton: false });

twitter === twitter2; //=> false

Parameters:

fullName String
options [Object]
source [String]
The fullname of the request source (used for local lookup)

Returns:

Any

lookupFactory (fullName, options) Anyprivate

Defined in packages/container/lib/container.js:135

Given a fullName, return the corresponding factory.

Parameters:

fullName String
options [Object]
source [String]
The fullname of the request source (used for local lookup)

Returns:

Any

ownerInjectionObjectprivate

Defined in packages/container/lib/container.js:220

Returns an object that can be used to provide an owner to a manually created instance.

Returns:

Object

reset (fullName) private

Defined in packages/container/lib/container.js:205

Clear either the entire cache or just the cache for a particular key.

Parameters:

fullName String
optional key to reset; if missing, resets everything

cacheInheritingDictprivate

Defined in packages/container/lib/container.js:64

factoryCacheInheritingDictprivate

Defined in packages/container/lib/container.js:71

ownerObjectprivate

Defined in packages/container/lib/container.js:49

registryRegistryprivate

Defined in packages/container/lib/container.js:56
Available since 1.11.0

validationCacheInheritingDictprivate

Defined in packages/container/lib/container.js:78

© 2017 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.
https://emberjs.com/api/classes/Container.html

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部