如何让以下代码将 2 附加到文档?
var $injector = angular.injector(['ng']);
$injector.invoke(function ($compile, $rootScope) {
var link = $compile('<p>{{1+1}}</p>');
var newElement = link($rootScope);
$(document.body).append(newElement);
});
我现在在浏览器中看到的是
{{1+1}}
修改
我希望添加到body元素,不仅仅是插入静态HTML,而是成为一个有角度的应用程序 - 这样它反映了范围的变化,有事件处理程序等。
答案 0 :(得分:3)
您需要将其绑定到$scope
而不是$rootScope
,将行更改为
function ctrl($scope) {
var $injector = angular.injector(['ng']);
$injector.invoke(function ($compile) {
var link = $compile('<p>{{1+1}}</p>');
var newElement = link($scope);
$(document.body).append(newElement);
});
}
或者,您可以使用$interpolate模块。
function ctrl($scope, $interpolate) {
var $injector = angular.injector(['ng']);
$injector.invoke(function ($compile) {
var link = '<p>{{1+1}}</p>';
var exp = $interpolate(link)({});
$(document.body).append(exp);
});
}