可能是一个微不足道的问题,但对于AngularJS新手来说,这是一个问题^ _ ^
我最初想要实现的是使用ng-click指令生成动态插入的标记(通过jQuery)。我搜索过并发现我要获得AngularJS Injector,然后编译该代码。所以这里是最简单的注射器代码形式,对我不起作用,它有什么问题?
注意#1:带有ngDirective的动态插入标记在AngularJS范围之外完成。
angular.module('simpleExample', [])
.run(
[ '$rootScope',
function ($rootScope) {
$rootScope.test = "Test";
}]);
console.log(angular.injector(['simpleExample']));
// console.log(angular.injector(['simpleExample']).$compile('<a href="" ng-click="someFunctionOnRootScope()">Text</a>'));
答案 0 :(得分:3)
ng
模块angular.bootstrap
在使用时自动将ng
模块添加到依赖项中(手动或使用ngApp
)$rootScope
/ $compile
服务是ng
模块的一部分。injector.invoke
。angular.module('simpleExample', ['ng']);
angular.injector(['simpleExample'])
.invoke(['$rootScope','$compile',
function($rootScope, $compile){
var elm = $compile('<a href="" ng-click="someFunctionOnRootScope()">Text</a>')($rootScope);
$rootScope.someFunctionOnRootScope = function(){
alert("Hello there!");
}
angular.element(document.body).append(elm);
}]);