我成功地能够调用一个指令,该指令的数据是通过工厂从AJAX调用接收的。我收到的一个值是Unix时间戳格式,我需要使用类似的东西将其转换为人类可读的格式
new Date(date*1000);
格式化此值(info.dt)并将其放回指令中的最佳方法是什么?
代码详情:
我的指示,
mist.directive('weatherToday', function () {
return {
restrict: 'E',
templateUrl: "pages/tw.html",
scope: {info: '='}
};
});
tw.html,(我需要将 info.dt 转换为人类可读的日期时间格式。)
<div>
<h1>{{info.dt}}</h1>
</div>
这样的指令被调用,
<weather-today info="weather"></weather-today>
工厂详情:
WeatherService.getTodaysData().then(
function (data) {
$scope.weather = data;
}
);
mist.factory('WeatherService', function ($http) {
return {
getTodaysData: function () {
return $http.get('http://example.com').then(function (result) {
return result.data;
});
}
}});
答案 0 :(得分:0)
您的factory
将提供数据并由其他代码重复使用。因此,将Unix时间戳格式化为工厂内的Date
对象。这样工厂的用户就不需要重复格式化了。
mist.factory('WeatherService', function ($http) {
// You may want to extract this function to an independent factory/service
function formatUnixDate (timestamp) {
// Return the formatted Date.
}
return {
getTodaysData: function () {
return $http.get('http://example.com').then(function (result) {
// Suppose the `data` is an Array.
result.data = result.data.map(function (item) {
item.myDate = formatUnixDate(item.myDate);
return item;
});
return result.data;
});
}
}});