如何以角度显示ng-model输入值作为货币?

ble*_*der 7 javascript jquery filter angularjs angularjs-directive

我有html

<input type="text" ng-model="price" >

<h2>{{ price | currency}}</h2>
Run Code Online (Sandbox Code Playgroud)

在控制器中

$scope.price = 10;   
Which displays   **$10** in h1 if i change the value in price model input.
Run Code Online (Sandbox Code Playgroud)

我希望文本框输入为货币(输入框中的$ 10作为值).怎么做到这一点?

Aru*_*hny 15

您可以尝试使用格式化解析器

app.directive('currency', function () {
    return {
        require: 'ngModel',
        link: function(elem, $scope, attrs, ngModel){
            ngModel.$formatters.push(function(val){
                return '$' + val
            });
            ngModel.$parsers.push(function(val){
                return val.replace(/^\$/, '')
            });
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

然后

<input type="text" ng-model="price" currency>
Run Code Online (Sandbox Code Playgroud)

演示:小提琴

  • 当价值被移除时,美元就会消失.知道为什么吗? (2认同)