Angular Directive模板内部部分$ compile

时间:2014-09-24 21:09:16

标签: javascript angularjs angularjs-directive

我们正在开发一个奇特的小部件。在这里,我们希望在我们自己的指令中使用ng-grid。

<div fancy-widget >
    <div class=“fancy-part”>
        {{fancyImp}}
    </div>
    <ng-grid></ng-grid>  //ng-grid is part of angular-ui
</div> 

除了使用$compile(elem.children()[1])($scope)在fancy-widget的链接功能中编译ng-gird部分之外,还有其他方法可以让它更聪明吗?

建议的模板操作方式并没有让我满意。既然我们已经理解了ng-gird,为什么我们需要在这里使用手动$ compile来完成它?


已解决注释:

我的想法很明确。我实际上是在第三方环境下,我们只能定义指令和加载器来初始化这些指令。 ng-grid在指令定义中是延迟加载的。因为lazyload返回一个promise,所以我们不能指望ng-grid模块何时准备就绪。所以我们必须在promise resolve中使用$ compile。这是plnkr:(http://plnkr.co/edit/hyeIJx?p=info) -

1 个答案:

答案 0 :(得分:0)

如果模板中有ng-grid,那么angularjs也应该自动编译它。如果您在链接功能中手动添加它,除了手动调用$compile

之外别无其他办法