Transclude不进行插值

时间:2015-05-20 21:21:17

标签: angularjs angularjs-directive transclusion angularjs-compile angularjs-ng-transclude

我有一个指令可以转换一些HTML来提供一个虚假的上下文菜单。用法如下:

<div id="my-element">
    My content
    <context-menu get-offset="getOffset($event)">
       <ul>
           <li>
               <a href="" ng-click="action()">{{ label }}</a>
           </li>
       </ul>
    </context-menu>
</div>

这会将事件监听器绑定到#my-element,右键单击会将context-menu的内容显示给返回的$scope.getOffset个偏移量。

一切正常,但插值字符串{{ label }}未展开。假设$scope.label的值为'ABC'。您没有看到“ABC”,而是看到“{{label}}”。但是,ngClick似乎绑定正确。

请参阅此plunkr代码和&amp;演示:http://plnkr.co/edit/QDVAHkhrfsNpRcjTwCpM?p=preview

为什么会这样?

1 个答案:

答案 0 :(得分:3)

事件不会触发$ digest循环。将此行添加到showContextMenu()

的末尾
transcludeScope.$digest();

(你可以使用任何范围触发它,真的)