Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态添加AngularJS的属性和innerHTML_Javascript_Angularjs - Fatal编程技术网

Javascript 动态添加AngularJS的属性和innerHTML

Javascript 动态添加AngularJS的属性和innerHTML,javascript,angularjs,Javascript,Angularjs,好吧,我对angular是个新手,我已经从不同的渠道读到了关于angular的内容,以便对它有足够的了解, 显然我还在努力让它以某种方式发挥作用 我已经有了简单的htmlpage: <html> <body ng-app> <div id="content"></div> </body> </html> 我得到的结果是一个带有文本的html页面:{{test} 所以我假设它不起作用 我知道这可能与动态创建内容和ng控

好吧,我对angular是个新手,我已经从不同的渠道读到了关于angular的内容,以便对它有足够的了解, 显然我还在努力让它以某种方式发挥作用

我已经有了简单的htmlpage:

<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中所需的对象,但没有这样的可用性?