javascript - 动态添加 AngularJS 的属性和innerHTML

标签 javascript angularjs

好吧,我对 Angular 很陌生,我已经从不同的来源阅读了有关它的内容,以便充分理解它, 显然我仍在努力使其以某种方式发挥作用,

我已经有了简单的 htmlpage:

<html>
<body ng-app>
   <div id="content"></div>
</body>
</html>

然后,在我向服务器请求数据后,我创建如下内容:

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");
};

我得到的结果是一个带有文本的 html 页面:{{test}}

所以我认为它不起作用,

我知道这可能与动态创建内容和 ng-controller 有关,这可以像许多教程一样以更基本的方式完成,但我需要我指定的方法(添加属性和内容(测试)即时)因为我将显示我从服务器请求的内容,这些内容可能包含不同数量的数据,例如如果它有 3 个数组形式的数据,则“var add=document.createElement("div")”将被调用 3 次,我需要将属性 ng-controller 附加到每一次

是否有我还不知道的解决方法?

最佳答案

为了完成您在 Angular 中尝试做的事情,您将需要使用 $compile 服务,您可以阅读有关 here 的更多信息。 。这允许您将 html 附加到 dom 并将其链接到您的作用域变量。

对于您的具体示例,您可以在 window.onload 方法中获取 $compile 服务,如下所示:

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);
    });
};

关于javascript - 动态添加 AngularJS 的属性和innerHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24308442/

相关文章:

javascript - 选项卡中的重启功能如何?

javascript - JavaScript 中的字符串格式

javascript - 服务数据不应删除,同时使用 angularjs 刷新页面

angularjs - ngbTypeahead 搜索结果丢失

asp.net - 获取错误 403 图像 Angular

javascript - 如何在 Angular js中将选中的单选按钮值发送到服务器

javascript - 在 Node.js 中不使用库使用 websockets 的简单方法是什么?

javascript - Angular 1.5 预期数组但收到 : 0 when using filter

angularjs - ng-selected 不能与 ng-repeat 配合使用来设置默认值

javascript - 我想在onc​​lick中传递两个参数,一个是函数,另一个是div id