Ember.js 应用程序 register()方法

Ember.js 应用程序 register()方法

Ember.js 是一个使用组件服务模式的JavaScript Web框架。它是开源的。Ember.js应用程序类提供了一个 registered 功能,将对象绑定到应用程序级别的依赖关系。然后用户可以在其他部分使用这些依赖关系,绑定由Ember处理。

语法:

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

属性: register函数有三个属性,用于定义其执行过程:

  1. factory:name: factory属性指定要使用的工厂框架,并且name属性指定工厂的名称。
  2. object: 它指定要绑定到给定‘factory:name’的对象。
  3. options: 这些是可选属性,通常具有单例和非单例类型。单例对象将被实例化一次,并且每次查找它时都返回相同的实例。非单例类型每次返回对象的新实例。

创建一个Ember应用程序: 现在我们需要创建一个Ember应用程序。进入您想保存应用程序的目录,并运行以下命令:

ember create my-app

Ember.js 应用程序 register()方法

示例1: 首先我们将使用单例类型对象,如果不指定选项,则会使用单例对象。

现在运行以下命令:

ember generate instance logger

现在将以下代码添加到文件logger.js中:首先,我们导入“Emberobject”,我们将使用它扩展我们自定义声明的对象logger的功能。接下来是initialize函数,它描述了在初始化此对象期间要执行的步骤。我们有application.register()函数,它用于注册对象。第三部分是设置默认属性,如名称和initialize函数。

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 文件中:在这里定义了当实例化时这个实例初始化器将执行的操作,lookup 方法用于获取对上面声明的初始化器日志记录器的引用并使用它。使用了两个不同的日志记录器对象来比较同一引用是否相同或不同。

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.js 应用程序 register()方法

示例2: 现在我们将使我们的注册表成为非单例。为此,我们将在注册函数的选项属性中添加{singleton : false}。因此,使用以下代码更新logger.js:首先导入我们将用于扩展自定义声明对象logger功能的‘Emberobject’。接下来是initialize函数,它描述了在初始化此对象期间执行的步骤。我们有application.register()函数,它注册了我们将singleton属性设置为false的对象。第三部分也是最后一部分是设置默认属性,如名称和initialize函数。

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并刷新页面或重新加载。
Ember.js 应用程序 register()方法

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程