2017-11-01 3 views
2

EmberJS의 새로운 기능으로 튜토리얼을 진행하고 있습니다. 저는 튜토리얼에서 서비스를 만드는 방법과 컨트롤러에 주입하는 방법에 대해 설명하기 시작했습니다. (저는 컨트롤러가 있다면 100 % 확신 할 수 없지만 AngularJS는 꽤 유사합니다).Ember가 주입시 서비스 발생 오류를 발생했습니다.

Ember 프로젝트의 터미널에서 나는 ember g service authentication 명령을 실행합니다. 서비스가 내 앱의 services 디렉토리에서 파일 authentication.js에 생성 된 것을 볼 수 있습니다. 나는 그러나 내 컨트롤러로 주입 할 때, 나는 튜토리얼에서보다 최신 엠버의 버전을 사용하고 있기 때문에

Error: Assertion Failed: Attempting to inject an unknown injection: 'service:authentication 

이 될 수, 나는 로컬 응용 프로그램을 제공 브라우저에서이 문제를 얻을 , 지금 서비스를 삽입하는 다른 방법이 있습니까? 내가 물어이 튜토리얼

import ember from 'ember' 

export default Ember.Service.extend({ 
    records: [] 
}); 

에서 서비스의 구문이 내가 가지고있는 구문이기 때문에 지금, 자동으로 생성 된 프로젝트가 ember new

import Service from '@ember/service'; 

export default Service.extend({ 
    records: [] 
}); 

로 구축 할 때 조직 의 .js 타다 버전 2.16에서

import Route from '@ember/routing/route'; 

export default Route.extend({ 

    authentication: Ember.inject.service(), 

    setupController(controller) { 
    this._super(...arguments); 
    } 
}); 
+2

당신이 공유 코드는 잘 내 로컬 서버 다시 시작했다 밝혀 'Ember.inject.service'에 의존하는 대신에 "@ ember/service"; –

답변

2

"서비스가 주입되는 경우", 당신은 가져 오기위한 자바 스크립트 모듈 API를 활용할 수 있습니다.
Refer this blog post
Refer this full list

당신의 엠버 버전이 후, 2.16 미만이면

import ember from 'ember' 

export default Ember.Service.extend({ 
    records: [] 
}); 

타다 남은 버전 인 경우> 다음 = 2.16 아래 가져올 수있는 올바른 방법이다

import Service from '@ember/service'; 

export default Service.extend({ 
    records: [] 
}); 
2

Ember 2.16을 사용하고있는 것처럼 보입니다. (다른 사람들이 새로운 구성 요소 모듈화를 사용하고 있으며 다음 튜토리얼을 사용하면 2.15와 비슷합니다. r 당신이 또한 당신의 포스트에서 언급했듯이).

import Route from '@ember/routing/route'; 
import { inject as service } from "@ember/service"; 

export default Route.extend({ 
    authentication: service() 
}); 

하나는 acclaration :

그것은 당신이 너무 당신의 새로운 경로에 새로운 모듈을 사용해야 의미합니다 당신이 보여주고 코드가 route 클래스를 (또한 거기 경로 계층에 controllers이며, 경로 계층의 일부가 아닌 components입니다. 위에서 언급 한 모든 수준에서 새로운 서비스를 제공 할 수 있습니다. EmberJS.However에 대한 모든 정보에 대한

2

덕분에 당신에게 모든 사람이 변경할 수있는 한 가지 '가져 오기를 사용하고 내가 할 필요가 모든 -.-

+0

동일한 오류 메시지가 표시되고 서버를 다시 시작하면 문제가 해결되었습니다. 여기에 적어 줘서 고마워. –

관련 문제