home
  • Blog
  • Home
  • Projects
    • Ember
    • EmberData
    • Ember CLI
6.5
  • Packages
    • @ember/application
    • @ember/application/namespace
    • @ember/array
    • @ember/array/proxy
    • @ember/canary-features
    • @ember/component
    • @ember/component/template-only
    • @ember/controller
    • @ember/debug
    • @ember/debug/container-debug-adapter
    • @ember/debug/data-adapter
    • @ember/destroyable
    • @ember/engine
    • @ember/helper
    • @ember/object
    • @ember/object/core
    • @ember/object/evented
    • @ember/object/mixin
    • @ember/object/observable
    • @ember/object/promise-proxy-mixin
    • @ember/object/proxy
    • @ember/owner
    • @ember/renderer
    • @ember/routing
    • @ember/routing/hash-location
    • @ember/routing/history-location
    • @ember/routing/location
    • @ember/routing/none-location
    • @ember/routing/route
    • @ember/routing/route-info
    • @ember/routing/router
    • @ember/routing/router-service
    • @ember/routing/transition
    • @ember/runloop
    • @ember/service
    • @ember/template
    • @ember/test
    • @ember/utils
    • @glimmer/component
    • @glimmer/tracking
    • @glimmer/tracking/primitives/cache
    • rsvp
  • Classes
    • Application
    • ApplicationInstance
    • ApplicationInstance.BootOptions
    • ArrayProxy
    • Component
    • ComputedProperty
    • ContainerDebugAdapter
    • CoreObject
    • DataAdapter
    • Ember.Controller
    • Ember.NativeArray
    • Ember.Templates.helpers
    • Ember.Test
    • Ember.Test.QUnitAdapter
    • EmberArray
    • EmberENV
    • EmberObject
    • EmberRouter
    • Engine
    • EngineInstance
    • EventTarget
    • Evented
    • Factory
    • FactoryManager
    • FullName
    • HashLocation
    • Helper
    • HistoryLocation
    • Location
    • Mixin
    • MutableArray
    • Namespace
    • NoneLocation
    • ObjectProxy
    • Observable
    • Owner
    • Promise
    • PromiseProxyMixin
    • RegisterOptions
    • Renderer
    • Resolver
    • Route
    • RouteInfo
    • RouteInfoWithAttributes
    • RouterService
    • SafeString
    • Service
    • TestAdapter
    • Transition

Class RegistryProxyMixin private


Extends: RegistryProxy
Defined in: packages/@ember/-internals/runtime/lib/mixins/registry_proxy.ts:12
Module: ember

RegistryProxyMixin is used to provide public access to specific registry functionality.


Methods

register (fullName, factory, options) public

Module: ember

Inherited from BasicRegistry packages/@ember/-internals/owner/index.ts:107

fullName
String

type:name (e.g., 'model:user')

factory
Factory|object

(e.g., App.Person)

options
Object

(optional) disable instantiation or singleton usage

Registers a factory that can be used for dependency injection (with inject) or for service lookup. Each factory is registered with a full name including two parts: type:name.

A simple example:

import Application from '@ember/application';
import EmberObject from '@ember/object';

let App = Application.create();

App.Orange = EmberObject.extend();
App.register('fruit:favorite', App.Orange);

Ember will resolve factories from the App namespace automatically. For example App.CarsController will be discovered and returned if an application requests controller:cars.

An example of registering a controller with a non-standard name:

import Application from '@ember/application';
import Controller from '@ember/controller';

let App = Application.create();
let Session = Controller.extend();

App.register('controller:session', Session);

// The Session controller can now be treated like a normal controller,
// despite its non-standard name.
App.ApplicationController = Controller.extend({
  needs: ['session']
});

Registered factories are instantiated by having create called on them. Additionally they are singletons, each time they are looked up they return the same instance.

Some examples modifying that default behavior:

import Application from '@ember/application';
import EmberObject from '@ember/object';

let App = Application.create();

App.Person = EmberObject.extend();
App.Orange = EmberObject.extend();
App.Email = EmberObject.extend();
App.session = EmberObject.create();

App.register('model:user', App.Person, { singleton: false });
App.register('fruit:favorite', App.Orange);
App.register('communication:main', App.Email, { singleton: false });
App.register('session', App.session, { instantiate: false });
On this page


Methods

  • register
Team Sponsors Security Legal Branding Community Guidelines
Twitter GitHub Discord Mastodon

If you want help you can contact us by email, open an issue, or get realtime help by joining the Ember Discord.

© Copyright 2025 - Tilde Inc.
Ember.js is free, open source and always will be.


Ember is generously supported by
blue Created with Sketch.