2014-07-12 2 views
0

ember-cli 앱에 사이트 관련 설정을 적용하기 가장 좋은 장소가 어디인지 궁금하네요. 경로/컨트롤러에서 액세스 할 수 있으므로 글로벌 네임 스페이스에있을 가능성이 높습니다. 나는 다음과 같은 의미 사이트 설정으로Ember-CLI 응용 프로그램의 일반 사이트 관련 설정은 무엇입니까?

: 등 내가이 믹스 인을 만들 수 있습니다 알고 있지만 내가 훨씬 더 나은 방법이 느낄

사이트 이름, 사이트 슬로건, 기본 아바타 디렉토리, 기본 프로필 커버 디렉토리를, 아마도 environment.js 파일에 있습니까? 나는 ember-cli에 대해 매우 익숙하다. 그래서 나는 이런 전역 설정을 추가하는 몇 가지 분명한 방법을 놓쳤을지도 모른다.

이러한 유형의 설정을 추가 할 위치에 대한 제안이있는 사람이 있다면 컨트롤러를 추가하고 컨트롤러/라우터에서 참조하는 방법에 대한 명확한 지침과 그 장소가 가장 좋은 장소 (또는 유일한 장소)라고 생각하는 이유를 알려주세요.

+0

http://stackoverflow.com/questions/23718384/where-do-you-place-a-simple-variable-in-the-ember-app-kit-file-structure-so-it-c/23729225 # 23729225 ember-cli에도 적용 가능 – blessenm

답변

3

서비스 후보로 들립니다. 시도해보십시오

ember g service settings 

프로젝트 루트에서 실행하십시오. 이제 새로운 서비스에 공유 속성을 추가 할 수 있습니다

// app/services/settings.js 
import Ember from 'ember'; 

export default Ember.Object.extend({ 
    appName: 'my-app' 
}); 

이니셜은 또한 당신의 응용 프로그램을 통해 서비스에 액세스 할 수있는 방법을 제어하는 ​​당신을 위해 생성됩니다 : 당신이 할 수

// app/initializers/settings.js 
export default { 
    name: 'settings', 
    initialize: function(container, app) { 
    app.inject('route', 'settings', 'service:settings'); 
    } 
}; 

기본적으로 서비스는 모든 경로에서 사용할 수 있습니다. 이 같은 접근을 :

app.inject('controller', 'settings', 'service:settings'); 

에 대한 덤핑 지상으로 서비스를 악용 쉽게 될 수 있습니다

// app/routes/application.js 
import Ember from 'ember'; 

export default Ember.Route.extend({ 
    activate: function() { 
     this.get('settings.appName'); // my-app 
    } 
}); 

는 컨트롤러에서 서비스를 사용할 수 있도록하려면, 단순히 초기화에서 서비스를 주입 애플리케이션 전체에서 공유하려는 데이터 그들을 드물게 사용하십시오. 특히 기본 아바타 디렉토리 같은 것이 모델 속성으로 더 적합 할 수 있습니다.

+0

기본 아바타 디렉토리는 어떤 모델에서 의미가 있습니까? 나는 항상 이러한 유형의 설정이 매우 정적이며 거의 모든 곳에서 액세스해야한다고 생각했습니다. – user1952811

+0

앱에 대해 더 많이 알지 못하면 말할 수 없습니다. 사용자를위한 아바타입니까? 이 경우,'user' 모델입니다. –

+0

정적인데 왜 모든 사용자 모델에서 지속되어야합니까? – user1952811