Я пытаюсь вызвать функцию из моего шаблона директивы, чтобы преобразовать время в нечто читаемое. В настоящее время я вижу <script>document.write(convertTime({{hour.time}}));</script>
, где я хочу увидеть фактическое преобразованное время. Ошибок JS нет.Как вызвать функцию из угловой директивы
Директива:
.directive('hourly', function() {
return {
scope: true,
restrict: 'E',
template: '<div class="hourly_container row" ng-repeat="hour in weather.data" ng-if="(($index % 3) == 0)">' +
'<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">Time: <script>document.write(convertTime({{hour.time}}));</script></div>' +
'<div class="weather_block hourly col-xs-8 col-sm-8 col-md-8 col-lg-8">' +
'<canvas id="weather_icon_{{$index}}" width="128" height="128"></canvas><br />' +
'<span>Temp: {{hour.temperature}} </span><br />' +
'<span> {{hour.summary}} </span><br />' +
'<span>Humidity: {{hour.humidity}} </span><br />' +
'<span>Pressure: {{hour.pressure}} </span><br />' +
'</div>' +
'</div>'
}
});
Функция:
function convertTime(time) {
console.log("in convert time");
var d = new Date(time * 1000);
var hours = d.getHours()
var minutes = d.getMinutes()
if (minutes < 10) {
minutes = "0" + minutes;
}
var suffix = "AM";
if (hours >= 12) {
suffix = "PM";
hours = hours - 12;
}
if (hours == 0) {
hours = 12;
}
return "<span>" + d.getMonth() + " " + d.getDay() + "</span> <br />" + "<span>" + hours + ":" + minutes + " " + suffix + "</span";
}
Я уверен, что это правильный способ сделать это, но это не так. Однако вы можете увидеть, что я пытаюсь сделать с этим примером.
Как конструктивное предложение, я бы поставил кусок html, который был бы большим в Html-файл, и использовал templateUrl в вашей директиве. – Yatrix