$ compile in Directives

时间:2015-07-21 13:15:43

标签: javascript angularjs using-directives

嘿伙计们,我正在计划一个我正在制作的指令,它本质上是一个带有计时器的弹出窗口。基本上,计划是传入一个对象,该对象可以配置属性以构造消息。该指令将包含html模板,我们将根据服务中设置的属性附加消息/ html。例如:

$rootScope.timer = 'recursive time fn goes here'

obj = {
message : '<span ng-click="connect()">Custom message goes here {{ timer }} </span>'
}

Popup.pop(obj);

等。问题的关键是$rootScope计时器需要打勾(这在控制器中很简单),但是如果插值则指令将html设置为字符串,如果我正确的话,它不会更新值。我的问题是我如何获得指令在指令内滴答计时器。我需要在$compile中使用directive吗?如果是这样的话?此外,如果我需要,我将如何从此服务传递ng-click函数?对不起,如果它的混乱请求问题。

1 个答案:

答案 0 :(得分:0)

试试这个

&#13;
&#13;
//you can add your custom messge and time function returning value to the way u want 

// this is the basic way to do
var testing = angular.module('testing', [])

testing.directive('mydir', function ($compile, $rootScope) {
    
    var template = '<span ng-click="connect()">custom message</span>'
    return {

        restrict: 'E',

        link: function (scope, ele, attribute) {


            scope.connect = function () {

                alert('popup' +  new Date().getTime());
            }
            var content = $compile(template)(scope);

            ele.append(content)


        }

    }
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body>
    <div ng-app="testing">


        <mydir></mydir>
    </div>

</body>
&#13;
&#13;
&#13;