2

我有一个 AngularJS 应用程序(简化为相关部分)如下所示:

<div ng-app="myModule">
    <div id='container'>
        <div say-hello-to name="Frank">f</div>
        <div say-hello-to name="Billy">b</div>
    </div>
</div>

该应用程序工作正常。现在,如果在角度引导过程之后,我添加了一个新的 dom 元素,它对应于一个指令,它不会被解释。请注意,“添加”是由非 angularjs JavaScript 代码完成的。

<div say-hello-to name="Dusty">d</div>

它只是“死”的 div。

JsFiddle 链接:http: //jsfiddle.net/Nn34X/

问题是:如何在应用程序中添加一个新的 DOM 元素并让 AngularJS 知道有一个新元素需要解释(我可以轻松地将 angularjs 准确地指向所有插入的元素)

干杯,并提前感谢!

4

1 回答 1

5

检索$injector服务:

var $injector = angular.element(document.querySelector('#container')).injector();

选择元素:

var element = angular.element(document.querySelector('[name="Dusty"]'));

使用 $injector 服务来检索$compile服务并将元素链接到范围:

$injector.invoke(function ($compile) {    
  var scope = element.scope();
  $compile(element)(scope);
});

演示:http: //jsfiddle.net/6n7xk/

简短说明:从遗留代码调用 Angular JS

于 2014-04-16T11:15:35.950 回答