Ember.js 是一个利用 component-service 模式的 JavaScript Web 框架。它是Open-Sourced。 Ember Js 应用程序类提供了一个注册工具,将对象绑定到应用程序级依赖项。然后,用户可以在其他部分使用依赖项,并且绑定由 ember 处理。
用法:
application.register('factory:name',object,options)
属性:寄存器函数具有三个属性,用于定义其执行过程:
- 工厂: 名称:工厂定义了要使用的工厂框架,名称指定了工厂的名称。
- object:它指定要绑定到给定“factory:name”的对象
- options:这些是可选属性,通常有单例和非单例类型。单例对象将被实例化一次,并且每当查找它时都会返回相同的实例。非单例类型每次都会返回一个新的对象实例。
创建一个 Ember 应用程序:现在我们需要创建一个 Ember 应用程序。转到要保存应用程序的目录并运行命令:
ember create my-app

创建 Ember 应用程序
示例 1:首先我们将使用singleton-type对象,默认情况下,如果我们不指定选项,则使用单例对象。
现在运行以下命令:
ember generate instance logger
现在将以下代码添加到文件 logger.js 中:这里我们首先导入“Emberobject”,我们将使用它来扩展自定义声明的对象记录器的函数。接下来是初始化函数,它说明了该对象初始化期间要执行的步骤。我们有 application.register() 函数,用于注册对象。第三部分也是最后一部分是设置默认属性,例如名称和初始化函数。
Javascript
import EmberObject from '@ember/object';
export function initialize(application) {
let Logger = EmberObject.extend({
log(m) {
console.log(m);
},
});
application.register('logger:main', Logger);
}
export default {
name: 'logger',
initialize: initialize,
}; 运行命令:
ember generate instance-initializer instancelogger
现在将以下代码复制到 instancelogger.js 文件中:这里我们定义实例初始化程序在实例化时将执行的操作,查找方法用于获取对上面声明的初始化程序记录器的引用并使用它。两个不同的logger对象用于比较相同的引用是否相同或不同。
Javascript
export function initialize(applicationInstance) {
let logger = applicationInstance.lookup('logger:main');
logger.log('This is log from Instance Logger1!');
let logger2 = applicationInstance.lookup('logger:main');
logger2.log('This is log from Instance Logger2!');
// To check returned instance is equal or not
logger.log(logger ==logger2);
}
export default {
initialize
};运行命令:
ember server
输出:转到 localhost:4200 并检查控制台日志。你会注意到日志中的输出将返回 ‘true’ 意味着 logger 和 logger2 都是对象,是相同的实例。

Ember Application.register 输出 1
示例 2:现在我们将使我们的注册表成为非单例的。为此,我们将在寄存器函数的选项属性中添加 {singleton: false}。因此,使用以下代码更新logger.js:在这里,我们首先导入“Emberobject”,我们将使用它来扩展自定义声明的对象记录器的函数。接下来是初始化函数,它说明了该对象初始化期间要执行的步骤。我们有 application.register() 函数,它正在注册我们将 singleton 属性设置为 false 的对象。第三部分也是最后一部分是设置默认属性,例如名称和初始化函数。
Javascript
import EmberObject from '@ember/object';
export function initialize(application) {
let Logger = EmberObject.extend({
log(m) {
console.log(m);
},
});
application.register('logger:main', Logger,{singleton:false});
}
export default {
name: 'logger',
initialize: initialize,
}; instancelogger.js 文件保持不变。
输出:转到 localhost:4200 并刷新页面或重新加载。

余烬 Application.register 输出 2
相关用法
- Embeer.js Application initializer()用法及代码示例
- Embeer.js Application instanceInitializer()用法及代码示例
- Embeer.js ArrayProxy isDestroyed用法及代码示例
- Embeer.js ArrayProxy content用法及代码示例
- Embeer.js ArrayProxy cacheFor()用法及代码示例
- Embeer.js ArrayProxy objectAtContent()用法及代码示例
- Embeer.js ArrayProxy toString()用法及代码示例
- Embeer.js ArrayProxy replaceContent()用法及代码示例
- Embeer.js ArrayProxy removeObserver()用法及代码示例
- Embeer.js ArrayProxy destroy()用法及代码示例
- Embeer.js ArrayProxy insertAt()用法及代码示例
- Embeer.js ArrayProxy uniqBy()用法及代码示例
- Embeer.js ArrayProxy reduce()用法及代码示例
- Embeer.js ArrayProxy invoke()用法及代码示例
- Embeer.js ArrayProxy init()用法及代码示例
- Embeer.js ArrayProxy compact()用法及代码示例
- Embeer.js ArrayProxy set()用法及代码示例
- Embeer.js ArrayProxy filter()用法及代码示例
- Embeer.js ArrayProxy unshiftObject()用法及代码示例
- Embeer.js ArrayProxy objectAt()用法及代码示例
- Embeer.js ArrayProxy addObject()用法及代码示例
- Embeer.js ArrayProxy getProperties()用法及代码示例
- Embeer.js ArrayProxy rejectBy()用法及代码示例
- Embeer.js ArrayProxy slice()用法及代码示例
- Embeer.js ArrayProxy without()用法及代码示例
注:本文由纯净天空筛选整理自sunnydrall大神的英文原创作品 Ember.js Application register() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
