?
Dieses Dokument verwendet PHP-Handbuch für chinesische Websites Freigeben
創(chuàng)建一個(gè)注入函數(shù),用于通過(guò)依賴注入的方式獲取服務(wù)(參見(jiàn) 依賴注入)。
angular.injector(modules);
參數(shù) | 類型 | 詳述 |
---|---|---|
modules | Array.<string|Function> |
模塊函數(shù)或它們的別名的列表。參見(jiàn)
|
function() |
注入函數(shù)。參見(jiàn) $injector. |
典型用法
// create an injector
var $injector = angular.injector(['ng']);
// use the injector to kick off your application
// use the type inference to auto inject arguments, or use implicit injection
$injector.invoke(Function($rootScope, $compile, $document){
$compile($document)($rootScope);
$rootScope.$digest();
});
有時(shí)你要從Angular外部訪問(wèn)當(dāng)前運(yùn)行的Angular應(yīng)用程序的注入器。也許,你想在應(yīng)用啟動(dòng)后注入和編譯一些標(biāo)記,你可以使用獨(dú)立的injector()
添加到JQuery/jqLite元素。參見(jiàn) angular.element
.
這是相當(dāng)少見(jiàn)的,可能的情況是第三方庫(kù)作為注入標(biāo)記。
在下面的例子中,一個(gè)包含ng-controller
指令的HTML新區(qū)塊通過(guò)JQuery添加到文檔末尾。我們隨后編譯并鏈接它到當(dāng)前AngularJS域中。
var $div = $('<div ng-controller="MyCtrl">{{content.label}}</div>');
$(document.body).append($div);
angular.element(document).injector().invoke(Function($compile) {
var scope = angular.element($div).scope();
$compile($div)(scope);
});