我在这里包括一个Plunker:
http://plnkr.co/edit/4vqV8toHo0vNjtfICtzI?p=preview
我试图添加一个按钮到DOM,当点击应该执行绑定到它的功能。在这种情况下,应该提醒“测试”。这是代码。
调节器
app.controller('MainCtrl',function($scope,$sce) { $scope.trustedHtml = $sce.trustAsHtml('<button ng-click="testAlert()">Submit</button>'); $scope.testAlert = function () { alert('testing') }; });
HTML
<body ng-controller="MainCtrl"> <div ng-bind-html="trustedHtml"></div> </body>
$ sce.trustAsHtml和ng-bind-html不是要用指令构建HTML。这种技术将无法正常工作。
原文链接:https://www.f2er.com/angularjs/144712.html这是因为角度通过首先编译然后链接起作用。看到conceptual overview的一个很好的解释。
简而言之,当您链接在trustAsHtml中定义的HTML时,编辑ng(并因此了解)ng-click指令为时已晚。
为了动态添加HTML,您应该查看$ compile服务(和/或指令)。 Docs are here。