AngularJS - 是否有可能从代码编译和链接模板?
问题描述:
如何使以下代码在文档中附加?AngularJS - 是否有可能从代码编译和链接模板?
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,而是成为一个角度应用程序 - 以便它反映范围的变化,具有事件处理程序等。
答
您需要绑定到$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);
});
}
如果我更改了rootcope属性以使其反映我附加到文档的内容,那么该如何操作?我的意思是我不需要插入HTML,而是一个工作的应用程序,这是绑定到范围和事件/等? – Evgenyt
@Evgenyt更新。 – zsong