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 2016-04-22 15:04  落叶子  阅读(9110)  评论(0编辑  收藏  举报

导航