2014-03-13 4 views
11

콘솔에서이 오류가 발생합니다. $q is not defined. 나는 몇 가지 조사를했을 때 이것이 그렇다면, 약속의 전체 개념은 또한 사용되지 않는 경우 내가 http://www.breezejs.com/documentation/breeze-labs/breezeangularqjs

에서 .q library has been deprecated 같은 몇 가지 일을 발견,

+2

근무중인 범위에 $ q를 주입 했습니까? – Benmj

+0

진행중에 우리를 업데이트하고 대답에 대한 피드백을 주시면 감사하겠습니다 :) –

답변

25

약속은 사용되지되지 않습니다. 사실 그들은 요즘 꽤 많은 힘을 얻고 있으며 자바 스크립트의 다음 버전에 포함되어 있습니다. 그들이 말하는에서

살펴 보자 :이 breeze.angular.q 라이브러리가 사용되지 않습니다

. Breeze Angular Service는 Angular 개발을위한 산들 바람을보다 깔끔하게 구성합니다.

Breeze Angular Service는 Breeze에게 약속의 경우 Angular의 $q을 사용하고 Ajax 호출의 경우 Angular의 $http을 사용하도록 Breeze에 알려줍니다. 그들이 말하는 무엇

는 바람이 오히려 더 할뿐만 아니라 $q 약속 각도 사용보다 훨씬 무거워 Q 약속을 사용하는 breeze.angular.q 자사가 소유하고있는 것 이외의 약속을 위해 각도의 자신의 약속을 사용한다는 것입니다. 이는 단순히 API 변경 일뿐입니다. 각도 코드 내부

하면 의존성 주입을 사용 $q를 얻을 수있다 - 예를 들어, 간단한 구문 :

myApp.controller("MyCtrl",function($q){ 
    //$q is available here 
}); 

를 다른 방법으로, 사용자가 서비스의 위치를 ​​사용하여 독립적으로 사용하거나 문의 $q을 구하려면 인젝터,하지만 그 경우는 거의 없습니다. (예제를 원한다면 알려주세요. 보통 나쁜 습관을 나타내는 코드는 포함하지 않을 것입니다.)

+0

안녕하세요, 처음에 저는 각도 개념에 익숙하지 않다는 것에 동의하고 싶습니다. 그래서 약속 문서를 검색하면서 http : //www.techjini.com/blog/javascript-promises/,이 문서가 정확한지, 나를 올바르게 작성하지 않은 경우. 고마워요 형제 –

+0

@ RaviMone jsfiddle (http://jsfiddle.com) 또는 다른 웹 사이트에서 간단한 예를 만들면 모양을 잘못 이해하는 것을 시도 할 수 있습니다. –

9
# in your console, try following code 
$injector = angular.injector(['ng']); 
q = $injector.get('$q'); 
deferred = q.defer(); 
# then do whatever you want 
관련 문제