我有一个div(id:dest),其中使用查询通过ajax加载内容。 我需要使用angular编译该div的内容。
以下是通过ajax加载的内容: {{MYVAR}}
我试着这样做:
var app = angular.module("myapp", []);
app.controller("myctrl", function($scope){
$scope.myvar = "hello world!";
});
$("#dest").attr("data-ng-app", "myapp");
$("#dest").attr("data-ng-controller", "myctrl");
console.log(angular.element($("#dest")).size()); //always returns '1'
angular.element($("#dest")).injector().invoke(function($compile) {
var scope = angular.element($("#dest")).scope();
$compile($("#dest"))(scope);
});
我确定在执行该代码时,$("#dest")存在于dom中但是 angular.element($("#dest"))。injector()始终未定义。
我也试着等了15秒:
setTimeout(function(){
angular.element($("#dest")).injector().invoke(function($compile) {
var scope = angular.element($("#dest")).scope();
$compile($("#dest"))(scope);
});
}, 15000);
但问题仍然存在。
PS。
我无法直接与ajax请求或响应进行交互,并且在页面加载时存在div(带有id dest)。
答案 0 :(得分:0)
您是否尝试使用$(document).ready()
或角度等效的代码包装该代码:
angular.element(document).ready(function () {
angular.element($("#dest")).injector().invoke(function($compile) {
var scope = angular.element($("#dest")).scope();
$compile($("#dest"))(scope);
});
});
工作jsfiddle。