条件货币符号与角度过滤器

时间:2015-06-29 17:45:42

标签: javascript angularjs data-binding angularjs-filter

$scope.countries = [{name: 'UNITED KINGDOM', id: 1, sign:"£", 'val':2300987 },{name:    'AUSTRIA', id: 2, sign:"€", 'val':6703482 }
// In HTML
   <tr ng-repeat="country in countries">
        <td class="td-border">{{country.val| currency}}</td>
   </tr>

我需要角度过滤器,根据上述对象有条件地处理货币..

4 个答案:

答案 0 :(得分:2)

来自Angular Docs

  

过滤器定义{{currency_expression |货币:符号:   fractionSize}}

只需将参数添加到过滤器即可标记您的货币。

<强>标记

<tr ng-repeat="country in countries">
    <td class="td-border">{{country.val| currency: country.sign}}</td>
</tr>

答案 1 :(得分:0)

我认为您需要根据货币过滤行。您只需将代码更新为以下

即可实现这一目标
// In HTML
<tr ng-repeat="country in countries | filter : {sign : currency}">
    <td class="td-border">{{country.val}}</td>
</tr>

答案 2 :(得分:0)

首先,如果您希望过滤器格式化您的货币,则必须将国家/地区对象或符号和val传递给它,否则您无法使用过滤器添加标记。

   .filter('currency', [function() {
    return function(countryObj) {    
            return countryObj.val + countryObj.sign;
        }
    };
    }])

答案 3 :(得分:0)

角度的过滤可以在转发器上绑定。 使用单独的模型来存储当前货币非常简单:

IReadOnlyCollection<out T>

在转发器上过滤将很容易:

$scope.currency = "£";

工作演示:http://jsfiddle.net/CBgcP/692/

相关问题