Javascript 如何在显示前格式化范围对象中的数据?
我已经实现了一个表,可以得到一个订单列表 我需要弄清楚如何选择和重命名一个值。在这种情况下: 1) 使用$.http调用数据,我得到了响应数据:Javascript 如何在显示前格式化范围对象中的数据?,javascript,json,angularjs,Javascript,Json,Angularjs,我已经实现了一个表,可以得到一个订单列表 我需要弄清楚如何选择和重命名一个值。在这种情况下: 1) 使用$.http调用数据,我得到了响应数据: { "orders":[ { "created_at_format":"24 October 2015", "client":"Jason ", }, { "c
{
"orders":[
{
"created_at_format":"24 October 2015",
"client":"Jason ",
},
{
"created_at_format":"25 October 2015",
"client":"Jason ",
},
{
"created_at_format":"29 October 2015",
"client":"Jason ",
},
{
"created_at_format":"30 October 2015",
"client":"Jason ",
}
]
}
2) 我已经完成了一个设置和控制器,它将$scope分配给response.orders作为$scope.list
3) 我使用ng repeat制作了HTML,以在以下代码段中呈现:
<div ng-app="order_table" ng-controller="list">
<table>
<tbody>
<tr ng-repeat="x in list">
<td>{{ x.client}}</td>
<td>{{ x.created_at_format}}</td>
</tr>
</tbody>
</table>
</div>
{{x.client}}
{{x.created_at_format}}
它工作正常,但我需要知道如何替换{{x.created_at_format}的每个值,如:
“2015年10月24日”
到
“2015年8月24日”
要满足条件,请选择不同的月份并重命名。您可能需要使用自定义筛选器。这是一个开始:
angular.module('order_table').filter('dateFormat', function () {
return function (str) {
var newStr = str.replace('October', 'de Octubre de');
return newStr;
};
});
<td>{{ x.created_at_format | dateFormat }}</td>
angular.module('order_table')。filter('dateFormat',function(){
返回函数(str){
var newStr=str.replace('10月','de Octubre de');
返回新闻TR;
};
});
{{x.created_at_format | dateFormat}}
我建议使用标准化的日期格式,如 如果您不能,我建议您使用一个过滤器,以_格式拆分创建的_,并替换字符串模板上的标记
angular.module('myModule')
.filter('myDateFormat', function () {
var TEMPLATE = "{day} de {month} de {year}";
var MonthMap = {
"January": "Enero",
"Febrary": "Febrero",
"March": "Marzo",
"April": "Abril",
"May": "Mayo",
"June": "Junio",
"July": "Julio",
"August": "Agosto",
"September": "Septiembre",
"October": "Octubre",
"November": "Noviembre",
"December": "Diciembre"
};
return function (input, format) {
var format = format || TEMPLATE;
var arrDay = input.split(" ");
return format
.replace('{day}', arrDay[0])
.replace('{month}', MonthMap[ arrDay[1] ])
.replace('{year}', arrDay[2]);
};
});
<td>{{ x.created_at_format | myDateFormat }}</td>
// With filter function, make sure all {} are closed
<td>{{ x.created_at_format | myDateFormat: '{day}/{month}/{year}' }}</td>
angular.module('myModule')
.filter('myDateFormat',函数(){
var TEMPLATE=“{day}de{month}de{year}”;
var MonthMap={
“一月”:“埃诺”,
“Febrary”:“Febrero”,
“三月”:“Marzo”,
“四月”:“阿布里尔”,
“May”:“Mayo”,
“June”:“Junio”,
“七月”:“胡里奥”,
“八月”:“Agosto”,
“九月”:“七月初”,
“十月”:“奥克图布尔”,
“11月”:“Noviembre”,
“十二月”:“迪吉姆博”
};
返回函数(输入,格式){
var format=格式| |模板;
var arrDay=input.split(“”);
返回格式
.replace(“{day}”,arrDay[0])
.replace({month}',MonthMap[arrDay[1]]
.替换({year}',arrDay[2]);
};
});
{{x.created_at_format}myDateFormat}
//使用filter函数,确保所有{}都已关闭
{{x.created_at_format}myDateFormat:{day}/{month}/{year}}
因此,您正在询问如何用不同的语言本地化该字符串?您可以在控制器中随意操作数据。您需要更清楚地了解您要完成的任务,以及您遇到的困难。@MikeBrant是的,这是一个次要问题,我不打算使用本地化,只是一个基本字符串。@Creditenson我仍然不知道如何在渲染前编辑数据,因为需要选择“十月”需要修改,包括所有月份字符串。