我已经坚持了很长一段时间,并且可能有一个简单的解决方法,但我对指令很新。我的指令属于孤立的范围。我有一个已在应用程序中注入的过滤器,但由于某种原因,它不能在指令的隔离范围内工作。这是我的指令代码(名称已被抽象)
var module = angular.module('SharedDirectives', []);
module.directive('templ', function(){
return {
restrict: 'E',
templateUrl: 'templates/templ.html',
scope: {
itemType: "@",
items: "=items"
}
};
});
module.filter('formatAmount', function() {
return function(amount, symbol, code) {
if(amount != undefined && code != undefined) {
var fixedAmount = (amount).toFixed(2);
return symbol + fixedAmount + ' ' + code;
}
else if(code == undefined && amount != undefined) {
var fixedAmount = (amount).toFixed(2);
return symbol + fixedAmount;
}
};
});
我的模板中的一个片段:
{{10| formatAmount: '$' : 'USD'}}
答案 0 :(得分:2)
在使用toFixed()
之前,您必须确保金额是一个数字filterModule.filter('formatAmount', function() {
return function(amount, symbol, code) {
if(amount != undefined && code != undefined) {
var fixedAmount = Number(amount).toFixed(2);
return symbol + fixedAmount + ' ' + code;
}
else if(code == undefined && amount != undefined) {
var fixedAmount = Number(amount).toFixed(2);
return symbol + fixedAmount;
}
};
});