2013-11-11 2 views
6

Я пытаюсь форматировать валюту, когда страница загружается с помощью AngularJS. Но это не работает, если я использую валюту фильтра в ngModel.It, похоже, работает только для {{var | currency}}.Формат валюты в AngularJS в ngModel

P.S.:I хочу, чтобы он работал над ngModel, и я хочу, чтобы валюта отформатировалась при загрузке страницы.

+1

Можете ли вы показать фактический код, который не работает? –

+0

Можете ли вы показать этот код, который вы пробовали. В js-фильтре можно выполнить синтаксис '$ filter ('currency') (amount [, symbol])' – Chandermani

ответ

4

Если вы хотите, чтобы фильтр в HTML, а не в нг-модели, это альтернатива:

<input type="text" ng-model="var" value="var|currency"/>

Вы можете добавить его в значение атрибута.

+2

Это не работает, если тип ввода - это номер. любой способ сделать это? – Mukun

+0

Если ввод является числом, вы не сможете иметь на нем символ валюты. – Grungondola

+1

См. Скрипку http://jsfiddle.net/k7Lq0rns/1/ –

8

Попробуйте это:

HTML

<!doctype html> 
<html ng-app="App"> 
<head> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script> 
    <script type="text/javascript" src="script.js"></script> 
</head> 
<body> 

    <div ng-controller="Ctrl"> 
    <span>Amount1: {{amount1 | currency:"USD$"}}</span><br/> 
    <span>Symbol2: <input ng-model="symbol2"/></span><br/> 
    <span>Amount2: <input ng-model="amount2"/></span><br/> 
    </div> 

</body> 
</html> 

код JavaScript

angular.module('App', []); 

function Ctrl($scope) { 
    $scope.amount1 = 1234.56; 
    $scope.symbol2 = 'USD$'; 
    $scope.amount2 = '1234.56'; 
} 

Plunker example

Если это не поможет, проверить это: Getting a currency format pattern from AngularJS filter

Смежные вопросы