コンソールでこのエラーが発生します$q is not defined
。調査したところ、.q library has been deprecated
from http://www.breezejs.com/documentation/breeze-labs/breezeangularqjs
もしそうなら、約束の概念全体も廃止されます、
Promiseは非推奨ではありません。実際、それらは最近かなりの勢いを得ており、JavaScriptの次のバージョンに含まれています。
彼らが言うことを見てみましょう:
このbreeze.angular.qライブラリは廃止されました。これは、Breeze Angularサービスに置き換えられました。これは、Angular開発のためにbreezeをよりきれいに構成するサービスです。
Breeze Angularサービスは、Breezeに、Angularの
$q
をプロミスに使用し、Angularの$http
をajax呼び出しに使用するように指示します。
彼らが言うことは、そよ風はそれ自身のbreeze.angular.q
ではなくAngular自身のプロミスを使用するということです。これは$q
プロミスよりも可能であるがはるかに重いQプロミスを使用するAngular =使用。これは単にAPIの変更です。
Angularコード内で、依存関係注入を使用して$q
を取得できます-たとえば、簡単な構文で:
myApp.controller("MyCtrl",function($q){
//$q is available here
});
または、個別に使用したい場合は、サービスの場所を使用して、インジェクターから直接$q
を取得できますが、これはまれなケースです。 (例が必要な場合-知らせてください。通常、悪い習慣を示すコードは含めないでください)。
# in your console, try following code
$injector = angular.injector(['ng']);
q = $injector.get('$q');
deferred = q.defer();
# then do whatever you want