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
A depth first traversal, destroying the container, its descendant containers and all their managed objects.
factoryFor (fullName, options) Any
public
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:
Returns:
-
Any
lookup (fullName, options) Any
private
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:
Returns:
-
Any
lookupFactory (fullName, options) Any
private
Given a fullName, return the corresponding factory.
Parameters:
Returns:
-
Any
ownerInjectionObject
private
Returns an object that can be used to provide an owner to a manually created instance.
Returns:
-
Object
reset (fullName) private
Clear either the entire cache or just the cache for a particular key.
Parameters:
-
fullName
String
- optional key to reset; if missing, resets everything
cacheInheritingDict
private
factoryCacheInheritingDict
private
ownerObject
private
registryRegistry
private
validationCacheInheritingDict
private
© 2017 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.
https://emberjs.com/api/classes/Container.html