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();
(您可以使用任何范围触发它,真的)
我有一个指令,它包含一些 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();
(您可以使用任何范围触发它,真的)