AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法

前端之家收集整理的这篇文章主要介绍了AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今天用angular写table的时候,遇到了一个问题。在ng-repeat中,含有动态的html,而这些html中含有自定义指令。

因为希望实现一个能够复用的table,所以定义了一个指令myStandTable,指令代码大概如下:

tableTem.html文件代码如下:

Box" id="check-all" ng-model="itemsChecked"> Box" id="check_{{$index}}" ng-model="item.selected">

控制器文件代码如下:

名称","结果","操作"],theadName: ["importDate","name","result","oper"] }; });

以上,完成了表格展示数据的功能,可是在表格列里面,经常有对某行数据的操作,而这些操作我们同样需要以html的形式插入到表格里面,并且这些html中,还会有ng-click等之类的指令,或者是自定义的指令。比如:"查看信息"; 这类的html,插入到td中,会以HTML代码展示出来,并不会转换成html。

在网上查阅了方法后,找到了一个转html的解决办法,增加一个过滤器,如下:

然后修改temp文件中的代码

通过以上方法,确实可以将html转成正常的结果,可是a标签上的ng-click却没有效果,查看了问题的关键,是这段html并没有经过angular的编译,所以ng-click不起作用,需要手动编译,修改如下:

temp文件代码修改

当item[name] 等于 "查看信息"时,我们需要通过compileBindExpn指令来手动编译,再放到div里面去。指令代码如下:

经过这种解决方法后,终于能够正常展示HTML代码,且其上的ng-click方法也能正常使用。如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程之家网站的支持

猜你在找的JavaScript相关文章