AngularJS: вызов функции javascript при загрузке страницы для ng-for
Я пытаюсь вызвать функцию.js и хочу, чтобы она запускалась сначала при загрузке страницы, а затем с интервалом в 60 секунд.
HTML-код - он помещается внутри ng_controller для
<p class='timeago timeago-style' title="{{notification.created_time}}"></p>
.js код -
function timeAgo(selector) {
// time code here
var elements = document.getElementsByClassName('timeago');
for (var i in elements) {
var $this = elements[i];
if (typeof $this === 'object') {
$this.innerHTML = timer($this.getAttribute('title'));
}
};
console.log("Timer called");
setInterval(timeAgo, 60000);
};
timeAgo();
После запуска этого кода функция timeAgo() вызывается каждые 60 секунд. Я хочу, чтобы эта функция также запускалась при загрузке страницы.
1 ответ
Вы можете добавить вызов функции в функцию загрузки тела.
<body onload="timeAgo()">
Также выбранный вами аргумент в функции timeAgo никогда не используется, поэтому он вам не нужен.
Также вам не нужно устанавливать setInterval каждый раз при вызове функции, поскольку setInterval уже будет работать бесконечно, поэтому вы на самом деле просто вызываете функцию один раз, затем дважды, затем 3 раза и так каждый раз, когда она вызывается.
Итак, что вы можете сделать:
<body onload="timeAgo()">
<p class='timeago timeago-style' title="{{notification.created_time}}"></p>
</body>
....
<script>
function timeAgo() {
var elements = document.getElementsByClassName('timeago');
for (var i in elements) {
var $this = elements[i];
if (typeof $this === 'object') {
$this.innerHTML = timer($this.getAttribute('title'));
}
};
console.log("Timer called");
};
setInterval(timeAgo, 60000);