我有一个要求,对于某些类型的范围变量,我想在AngularJs中保留两个小数位。为此,我做了以下事情:
html
<span floatval="{{someVariable}}">{{someVariable}}</span>
js
var app = angular.module('app',[]).directive('floatval', function(){
return function(scope, element, attrs){
var newInt = parseFloat(attrs.floatval);
var n = newInt.toFixed(2);
}
});
我被困在这里,因为我不知道如何在原始范围的位置反映这个新值{{somevariable}}
答案 0 :(得分:2)
您可以指定指令的范围。这样就可以设置双向绑定。
var app = angular.module('app',[]).directive('floatval', function(){
return {
scope: {
floatval: '='
},
link: function(scope, element, attrs){
scope.floatval = parseFloat(scope.floatval).toFixed(2);
}
};
});
然后您需要更改HTML <span floatval="someVariable">{{someVariable}}</span>
请参阅https://code.angularjs.org/1.3.15/docs/guide/directive
链接到示例plnkr:http://plnkr.co/edit/aRyp1v9tGH7z8X28fewP?p=preview
答案 1 :(得分:0)
为什么不使用内置过滤器? https://docs.angularjs.org/api/ng/filter/number