2015-10-20 27 views
1

我有一個Ember應用程序需要使用不同的數據,具體取決於它運行的域。例如,在domain1.com上,網站標題可能是「Domain 1 Website」,而對於domain2.org,網站標題可能是「Cool Site!」。使用Ember初始化器設置域相關數據

我需要能夠使用路由,控制器和模板中的數據。

我至今初始化:

import { request } from 'ic-ajax'; 
 

 
export function initialize(container, application) { 
 
    var domain = document.location.host; 
 
    return request('http://api/sites?domain=' + domain, {}).then(function(response) { 
 
    // make the response available to routes, controllers and templates 
 
    }); 
 
} 
 

 
export default { 
 
    name: 'site-data', 
 
    initialize: initialize 
 
};

回答

0

如果你看看文檔: http://guides.emberjs.com/v1.10.0/understanding-ember/dependency-injection-and-service-lookup/#toc_dependency-injection-with-code-register-inject-code

第二個例子

Ember.Application.initializer({ 
    name: 'logger', 
    initialize: function(container, application) { 
    var logger = { 
     log: function(m) { 
     console.log(m); 
     } 
    }; 

    application.register('logger:main', logger, { instantiate: false }); 
    application.inject('route', 'logger', 'logger:main'); 
    } 
}); 

和弗洛wing說明你如何使用.inject來爲你的應用程序中需要的任何對象提供一個變量,服務或函數。