如何在现有应用程序中添加角度js模块

时间:2014-08-27 19:53:02

标签: javascript jquery angularjs angularjs-directive directive

我正在尝试在现有代码中添加一个角度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>"
    };
});

1 个答案:

答案 0 :(得分:1)

你需要使用$ compile。 $ compile()将确保html代码段中的所有Angular代码都将被编译!

这是一个例子。

http://plnkr.co/edit/7Wr3oAtvZ8cn31uFFEOs?p=preview

  • 从nc-click发送消息到指令
  • 指令接收消息,编译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);