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