Javascript 如何在显示前格式化范围对象中的数据?

Javascript 如何在显示前格式化范围对象中的数据?,javascript,json,angularjs,Javascript,Json,Angularjs,我已经实现了一个表,可以得到一个订单列表 我需要弄清楚如何选择和重命名一个值。在这种情况下: 1) 使用$.http调用数据,我得到了响应数据: { "orders":[ { "created_at_format":"24 October 2015", "client":"Jason ", }, { "c

我已经实现了一个表,可以得到一个订单列表

我需要弄清楚如何选择和重命名一个值。在这种情况下:

1) 使用$.http调用数据,我得到了响应数据:

    {
        "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我仍然不知道如何在渲染前编辑数据,因为需要选择“十月”需要修改,包括所有月份字符串。