Transclude 不插值

Transclude does not interpolate

我有一个指令,它包含一些 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 returns。

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

请参阅此插件以获取代码和演示:http://plnkr.co/edit/QDVAHkhrfsNpRcjTwCpM?p=preview

这是为什么?

事件没有触发 $digest 循环。将此行添加到 showContextMenu():

的末尾
transcludeScope.$digest();

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