将AngularJS指令设置为来自控制器的DOM节点

时间:2017-08-30 10:48:20

标签: javascript angularjs

我想要重现的想法是从控制器设置角度指令('ng-show')。

我尝试着做下一个:

var node = `<div ng-show="this.length > 5">...</div>`;
var child = document.createElement('span');
child.innerHTML = node;
document.querySelector('.container').appendChild(child);

在将一个指令添加到DOM树之前,是否正确设置DOM节点上的指令?

1 个答案:

答案 0 :(得分:0)

您需要使用AngularJS的$compile服务在HTML页面中动态添加带有角度指令的HTML

app_module.controller('appController', function ($scope, $compile) {
   var node = `<div ng-show="this.length > 5">...</div>`;
   var child = document.createElement('span');
   child.innerHTML = node;
   $compile(document.querySelector('.container').appendChild(child))($scope);
});

$compile服务将重新编译AngularJS模板并检测新添加的ng-show