angualrjs添加动态指令(动态编译指令)

本文参考自后补全的代码:http://blog.csdn.net/liwusen/article/details/52078435

<body ng-app="myapp">
<h1>动态编译指令,动态编译指令模板内容</h1>
<div class="container" ng-controller="MyController">
    <button ng-click="addDirective()">添加动态指令</button>
    <div id="root"></div>
</div>
<!--  my-text method-from-outer="methodInCtrl()"></my-text -->
<script type="application/javascript">
    angular.module('myapp', [])
        .directive('myText', function ($compile) {
            var templatecC = '<div ng-click="hello()">Hi everyone</div>';
            return {
                restrict: 'AE',
                template: templatecC,
                scope: {
                    hello: "&methodFromOuter"
                },
                link: function (scope, ele, attr) {
                    ele.on("click", function () {
                        scope.$apply(function () {
                            //使用指令的scope进行编译模板内容,并添加到当前指令下面
                            var content = $compile(templatecC)(scope);
                            ele.append(content);
                        })
                    });
                }
            }
        })
        .controller("MyController", ["$scope", "$compile", function ($scope, $compile) {
            $scope.addDirective = function () {
                //使用controller的$scope进行编译指令,添加到指定的元素下。
                var dynamicDirective = $compile("<my-text></my-text>")($scope);
                angular.element("div#root").append(dynamicDirective);
            }
            $scope.methodInCtrl = function () {
                alert("hello 123456");
            }
        }])
</script>
</body>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值