Javascript 动态添加AngularJS的属性和innerHTML
好吧,我对angular是个新手,我已经从不同的渠道读到了关于angular的内容,以便对它有足够的了解, 显然我还在努力让它以某种方式发挥作用 我已经有了简单的htmlpage:Javascript 动态添加AngularJS的属性和innerHTML,javascript,angularjs,Javascript,Angularjs,好吧,我对angular是个新手,我已经从不同的渠道读到了关于angular的内容,以便对它有足够的了解, 显然我还在努力让它以某种方式发挥作用 我已经有了简单的htmlpage: <html> <body ng-app> <div id="content"></div> </body> </html> 我得到的结果是一个带有文本的html页面:{{test} 所以我假设它不起作用 我知道这可能与动态创建内容和ng控
<html>
<body ng-app>
<div id="content"></div>
</body>
</html>
我得到的结果是一个带有文本的html页面:{{test}
所以我假设它不起作用
我知道这可能与动态创建内容和ng控制器有关,这可以像许多教程一样以更基本的方式完成,但我需要我指定的方法(动态添加属性和内容(测试)),因为我将显示我从服务器请求的内容,这些内容可以具有不同的数据量,假设它在数组形式中有3个数据,“var add=document.createElement(“div”)”将被调用3次,我需要将属性ng controller附加到它们中的每一个
有什么我还不知道的解决方法吗?为了完成您在Angular中尝试的工作,您需要使用$compile服务,您可以阅读更多有关该服务的信息。这允许您将html附加到dom并将其链接到范围变量 对于您的特定示例,您可以在window.onload方法中获得$compile服务,如下所示:
function updateView($scope){
$scope.test="Success";
}
window.onload=function(){
var content = document.getElementById("content");
var add = document.createElement("div");
add.innerHTML = "{{test}}";
content.appendChild(add);
content.setAttribute("ng-controller", "updateView");
};
window.onload=function(){
angular.element("body").injector().invoke(function ($compile) {
var content = document.getElementById("content");
var add = document.createElement("div");
add.innerHTML = "{{test}}";
content.appendChild(add);
content.setAttribute("ng-controller", "updateView");
$compile(template.contents())(scope);
});
};
这个链接理论上可以回答这个问题,但是为了在这里包括答案的基本部分,并提供链接供参考。您可能应该使用
ng repeat
来循环从服务器返回的数据。问题在于将“{{}}”添加到innerHTML中,它没有链接您从服务器返回的数据结构是什么?你不应该在onload中做任何与角度相关的事情function@jonnyynnoj这是一个对象数组,我使用该数组作为ng repeat中所需的对象,但没有这样的可用性?