Class ContainerProxyMixin
private| Defined in: | packages/@ember/-internals/runtime/lib/mixins/container_proxy.js:7 |
|---|---|
| Module: | ember |
factoryFor (fullName, options) FactoryManager public
| Module: | ember |
|---|
Defined in packages/@ember/-internals/runtime/lib/mixins/container_proxy.js:110
- fullName
- String
- options
- Object
- returns
- FactoryManager
Given a fullName return a factory manager.
This method returns a manager which can be used for introspection of the factory's class or for the creation of factory instances with initial properties. The manager is an object with the following properties:
-
class- The registered or resolved class. -
create- A function that will create an instance of the class with any dependencies injected.For example:
import { getOwner } from '@ember/application'; let owner = getOwner(otherInstance); // the owner is commonly the `applicationInstance`, and can be accessed via // an instance initializer. let factory = owner.factoryFor('service:bespoke'); factory.class; // The registered or resolved class. For example when used with an Ember-CLI // app, this would be the default export from `app/services/bespoke.js`. let instance = factory.create({ someProperty: 'an initial property value' }); // Create an instance with any injections and the passed options as // initial properties.Any instances created via the factory's
.create()method must be destroyed manually by the caller of.create(). Typically, this is done during the creating objects owndestroyorwillDestroymethods.
lookup (fullName, options) Any public
| Module: | ember |
|---|
Defined in packages/@ember/-internals/runtime/lib/mixins/container_proxy.js:49
- fullName
- String
- options
- Object
- returns
- Any
Given a fullName return a corresponding instance.
The default behavior 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 ownerInjection Object public
| Module: | ember |
|---|
Defined in packages/@ember/-internals/runtime/lib/mixins/container_proxy.js:23
Available since v2.3.0
- returns
- Object
Returns an object that can be used to provide an owner to a manually created instance.
Example:
import { getOwner } from '@ember/application';
let owner = getOwner(this);
User.create(
owner.ownerInjection(),
{ username: 'rwjblue' }
)
© 2020 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.
https://api.emberjs.com/ember/3.25/classes/ContainerProxyMixin/methods