Ember-cli에 앱이 있습니다. 모든 경로, 컨트롤러 및 뷰에 메서드를 삽입하려고합니다. app/utils
디렉토리를 활용하고 메서드의 모듈을이 파일을 호출하는 모든 파일로 가져올 수 있다는 것을 알고 있지만이 메서드를 자동으로 사용할 수 있어야합니다. 따라서 이니셜 라이저를 사용하여 메소드를 주입하기로했습니다.ember-cli에 이니셜 라이저가있는 함수 주입
이니셜 라이저는 다음과 같습니다
export default {
name: 'injectMethod',
initialize: function(container, app) {
var someFunction = function(message) {
};
app.register('function:main', someFunction);
Em.A(['route', 'controller', 'view']).forEach(function(place) {
app.inject(place, 'someFunction', 'function:main');
});
}
};
이것은 다음과 같은 오류 메시지가 발생합니다 Uncaught TypeError: undefined is not a function
. app.inject()
행을 제거하면 오류가 사라집니다.
엠버 클리에서는 이니셜 라이저가 다르게 처리 되나요? 위의 코드에서 잘못된 것이 있습니까? 또는 이니셜 라이저를 사용하는 것보다 내 목표를 달성하는 더 좋은 방법입니까?
donno 방법 ember-을 cli는 아직 작동하지만 .. 여기 앱이 전 세계적으로 사용 가능합니까? – thecodejack
ember-cli/es6 모듈의 목표 중 하나는 전역 네임 스페이스에서 모든 것을 제거하는 것입니다. 개별 모듈을 등록하기 때문에'App'을 사용할 수 없습니다. –