我正在尝试在现有代码中添加一个角度JS模块。我实际上是想在其中添加一段新代码。工作流程是这样的。单击一个按钮时,JS会获取一个模板并将其添加到dom中。在这个添加的模板中,我想插入新的角度JS模块。我试图在模块内部至少展示你好世界但是没有成功。
让我们说当点击一个按钮时,我将以下标签添加到dom
<div patient-details ng-controller='patientDetailsCtrl' id='patientDetails'></div>
这是通过jquery或javascript添加的。如何使用以下指令
angular.module('patientDetailsModule',[])
.directive('patientDetails',function($compile){
return{
//restrict: 'E',
template: "<div>Hello World!!!{{name}}</div>"
};
});
答案 0 :(得分:1)
你需要使用$ compile。 $ compile()将确保html代码段中的所有Angular代码都将被编译!
这是一个例子。
http://plnkr.co/edit/7Wr3oAtvZ8cn31uFFEOs?p=preview
指令接收消息,编译html并附加新元素
var template = "<div patient-details ng-controller='patientDetailsCtrl' id='patientDetails'>Element added</div>";
var newElement = angular.element(template);
$compile(newElement)(scope);
element.append(newElement);
// can also use element.replaceWith(newElement);