Эй, ребята, я планировал директиву, которую я делал, и это было бы всплывающее окно с таймером. В основном план состоял в том, чтобы передать объект, который мог бы настроить свойства для построения сообщения. Директива будет содержать 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
таймер $rootScope
должен $rootScope
(что просто сделать в контроллере), но директива устанавливает html как строку при интерполировании и не будет обновлять значение, если я прав. Мой вопрос заключается в том, как получить директиву для отображения таймера в директиве. мне нужно будет использовать $compile
в directive
? если да, то как? Кроме того, как мне передать функцию ng-click
из этой службы, если я когда-нибудь понадобился? Извините, если его запутанные PLS задают вопросы.
Попробуй это
//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)
}
}
})
<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>