【问题标题】:conditional currency sign with angular filter带角度过滤器的条件货币符号
【发布时间】:2015-09-16 07:15:30
【问题描述】:
$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>

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

【问题讨论】:

  • 我会在 {{ country.val| currency }} 之前添加一个 {{ country.sign }}

标签: javascript angularjs data-binding angularjs-filter


【解决方案1】:

来自 Angular 文档

过滤器定义 {{ currency_expression |货币:符号: 分数大小}}

您只需添加参数来过滤哪些是您的货币符号。

标记

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

【讨论】:

    【解决方案2】:

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

    $scope.currency = "£";
    

    那么在中继器上进行过滤将非常容易:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        我认为您需要根据货币过滤行。您可以通过简单地更新代码来实现这一点

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

        【讨论】:

          猜你喜欢
          • 2018-02-15
          • 1970-01-01
          • 2016-11-22
          • 2019-11-15
          • 2018-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-22
          相关资源
          最近更新 更多