任何人都可以给出AngularJS注入器的详细示例。 这是API的代码副本。 “在下面的示例中,一个包含ng-controller指令的HTML新块由JQuery添加到文档正文的末尾。然后我们编译并将其链接到当前的AngularJS范围。”
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
<body ng-app="myApp">
</body>
<script>
angular.module('myApp', []);
var $div = $('<div ng-controller="formController">123</div>');
$('body').append($div);
angular.element(document.body).injector().invoke(function($compile) {
var scope = angular.element($div).scope();
$compile($div)(scope);
});
function formController ($scope,$http) {
}
</script>
我将其复制并粘贴到html页面中,但它不起作用。有错误
未捕获的ReferenceError:$未定义
更新: 我已经包含了jquery,并且出现了一个新错误:
未捕获的TypeError:无法读取未定义的属性“invoke”
答案 0 :(得分:1)
<body ng-app="myApp">
给角度一些时间来引导应用程序。
setTimeout(function () {
// now you can use the injector.
var $div = $('<div ng-controller="formController">123</div>');
$('body').append($div);
angular.element(document.body).injector().invoke(function($compile) {
var scope = angular.element($div).scope();
$compile($div)(scope);
});
}, 100);
您的示例应该可以使用这些更改。