2015-10-20 44 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来为你的应用程序中需要的任何对象提供一个变量,服务或函数。