当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Embeer.js Application register()用法及代码示例

Ember.js 是一个利用 component-service 模式的 JavaScript Web 框架。它是Open-Sourced。 Ember Js 应用程序类提供了一个注册工具,将对象绑定到应用程序级依赖项。然后,用户可以在其他部分使用依赖项,并且绑定由 ember 处理。

用法:

application.register('factory:name',object,options)

属性:寄存器函数具有三个属性,用于定义其执行过程:

  1. 工厂: 名称:工厂定义了要使用的工厂框架,名称指定了工厂的名称。
  2. object:它指定要绑定到给定“factory:name”的对象
  3. 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



相关用法


注:本文由纯净天空筛选整理自sunnydrall大神的英文原创作品 Ember.js Application register() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。