Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于键值对数组的AngularJS格式化数据_Javascript_Arrays_Angularjs - Fatal编程技术网

Javascript 基于键值对数组的AngularJS格式化数据

Javascript 基于键值对数组的AngularJS格式化数据,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我有下面带有Angular的HTML,它简单地循环遍历每个结果并打印它: <tr ng-repeat="transaction in transactions | filter:search"> <td>{{transaction.created}}</td> <td><a href="#/transactions/{{transaction.id}}">{{transaction.type}}</a><

我有下面带有Angular的HTML,它简单地循环遍历每个结果并打印它:

<tr ng-repeat="transaction in transactions | filter:search">
    <td>{{transaction.created}}</td>
    <td><a href="#/transactions/{{transaction.id}}">{{transaction.type}}</a></td>
    <td>{{transaction.amount}}</td>
</tr>

{{transaction.created}
{{transaction.amount}}
但是,
类型
的数据库值是发送、接收、购买和出售。当它显示在视图中时,我希望它像您所期望的那样,是一个动词(发送、接收、购买、出售)


我如何创建一个JavaScript数组,该数组的键值对为db value以显示值,并在与键匹配的数组中显示值(角度)?

假设您获得的
类型类似:

  • 发送200个
  • 收到150美元
  • 25英镑买的
  • 出售354件
您可以创建一个简单的过滤器,如下所示:

app.filter('typeToString', function(){
    var types = {'200':'sent', '150':'received', '25':'bought', '354':'sold'};
    return function(type){
         return types[type];
    };
})
<tr ng-repeat="transaction in transactions | filter:search">
    <td>{{transaction.created}}</td>
    <td><a href="#/transactions/{{transaction.id}}">{{transaction.type|typeToString}}</a></td>
    <td>{{transaction.amount}}</td>
</tr>
app.filter('typeToString', function(){
    var types = ['sent', 'received', 'bought', 'sold'];
    return function(type){
         return types[type];            
    };
})
然后像这样使用它:

app.filter('typeToString', function(){
    var types = {'200':'sent', '150':'received', '25':'bought', '354':'sold'};
    return function(type){
         return types[type];
    };
})
<tr ng-repeat="transaction in transactions | filter:search">
    <td>{{transaction.created}}</td>
    <td><a href="#/transactions/{{transaction.id}}">{{transaction.type|typeToString}}</a></td>
    <td>{{transaction.amount}}</td>
</tr>
app.filter('typeToString', function(){
    var types = ['sent', 'received', 'bought', 'sold'];
    return function(type){
         return types[type];            
    };
})

不起作用——表中没有显示任何值。@BillyAssim我刚刚用另一个工作示例对另一个案例进行了另一次更新,请看一看,因为这是可行的。如果它仍然不适用于您,请共享您正在使用的代码,我将帮助您使其工作,谢谢!