當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。