我在控制檯$q is not defined
中收到此錯誤。當我做了一些研究,我發現像.q library has been deprecated
一些東西從 http://www.breezejs.com/documentation/breeze-labs/breezeangularqjs
如果是這樣,那麼承諾的整個概念也已經過時,
我在控制檯$q is not defined
中收到此錯誤。當我做了一些研究,我發現像.q library has been deprecated
一些東西從 http://www.breezejs.com/documentation/breeze-labs/breezeangularqjs
如果是這樣,那麼承諾的整個概念也已經過時,
承諾不會過時。事實上,他們最近獲得了相當大的動力,並被包含在下一個JavaScript版本中。
讓我們看看他們在說什麼:
這breeze.angular.q庫已被棄用。它被微風角度服務所取代,它更加乾淨地爲角度發展配置微風。
Breeze Angular Service告訴Breeze使用Angular的
$q
作爲承諾,並使用Angular的$http
進行ajax調用。
他們說那是什麼微風使用角自己的承諾,對承諾,而不是自己的breeze.angular.q
它採用Q承諾這是更能夠而且也比角用途$q
承諾要重得多。這只是一個API更改。
內部角碼,你可以使用依賴注入獲得$q
- 比如用簡單的語法:
myApp.controller("MyCtrl",function($q){
//$q is available here
});
另外,如果您想單獨使用它,你可以使用服務的位置,並直接從獲得$q
注射器,但情況很少。 (如果你想要一個例子 - 讓我知道,我只是不包括代碼,通常表明不好的做法)。
嘿,謝謝,起初我想同意我不那麼熟悉角度概念,所以當通過承諾文件搜索時,我發現http: //www.techjini.com/blog/javascript-promises/,這個文檔是否正確,如果不正確的話。非常感謝兄弟 –
@RaviMone如果你在jsfiddle(http://jsfiddle.com)或其他類似的網站上創建一個簡短的例子,我可以看看並試着理解你做錯了什麼。 –
# in your console, try following code
$injector = angular.injector(['ng']);
q = $injector.get('$q');
deferred = q.defer();
# then do whatever you want
您是否已將$ q注入到您工作的範圍中? – Benmj
請考慮更新我們的進度,並給我反饋的答案:) –