angularjs - 插入$ compile-d html

Roy*_*ove 5 datatables angularjs

(请注意,您不需要知道这个数据表的数据.)

我正在创建一个处理DataTables的指令.我想做的是有一个带有两个图标的动作栏 - 编辑和删除.这些图标应响应ng-click.

数据表允许您通过为给定的列定义(mRender)提供回调来实现此目的.此回调返回该单元格值的html字符串,该字符串将插入DOM而不是实际单元格值.

检查这个plunker.强调了两个重要功能:

  • renderActionIcon - 我上面提到的回调的实现.它会在单元格中生成我想要的HTML字符串.
  • registerNewHtmlWithAngular - 表面上让角度知道我需要为该列注册的ng-clicks的函数.

应该registerNewHtmlWithAngular怎么做?

如果$编译html,angular会添加相应的click事件侦听器并返回一个元素,但由于Datatables函数需要HTML,因此这些注册的元素不会添加到DOM中.

有任何想法吗?谢谢大家!

Roy*_*ove 10

经过一天的键盘敲击:

似乎没有办法将$编译成html并让它在DOM中可用.它必须是插入DOM 的元素,以便事件侦听器不会丢失.

我在这个特定场景中解决问题的方法是只插入HTML,然后在新的HTML上运行$ compile.

Datatables通过fnCreatedRow回调使这变得容易,回调在渲染一行之后传回一行的Element,让你随心所欲地做任何事情.在这种情况下,我在行上运行$ compile并将其返回给Datatables.查看rowCompiler更新的plunker中的功能.