AngularJS $compile动态生成html

angular.module('app')
    .directive('compile', function ($compile) {
        return function (scope, element, attrs) {
            scope.$watch(
              function (scope) {
                   
                  return scope.$eval(attrs.compile);
              },
              function (value) {
                  element.html(value);
                  $compile(element.contents())(scope);
              }
            );
        };
    });

 

<div ng-app="app" ng-controller="SampleCtrl" class="container">
     <div ng-repeat="item in items">
         {{item.name}}<br />
         <div compile="item.tempatle"></div>         
     </div>   
 </div>
<script>
       angular
           .module('app')
           .controller('SampleCtrl', function ($scope, $filter) {
 
               $scope.open = function () {
                   alert("ddd");
               }
               $scope.items = [
                   { "name": "zhangsan", tempatle: '<i class="searchicon fa fa-search"   ng-click="open()" style="color:#5db2ff;cursor:pointer;">点击</i>' },
                   { "name": "lisi", tempatle: '<i class="searchicon fa fa-search"   ng-click="open()" style="color:#5db2ff;cursor:pointer;">点击</i>' },
                   { "name": "wangwu", tempatle: '<i class="searchicon fa fa-search"   ng-click="open()" style="color:#5db2ff;cursor:pointer;">点击</i>' }]
 
           });
   </script>

 

 

posted on 2017-08-25 14:50  水行者  阅读(224)  评论(0编辑  收藏  举报

导航