更改角度指令中属性的值

时间:2015-03-30 07:58:17

标签: javascript angularjs

我有一个要求,对于某些类型的范围变量,我想在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}}

2 个答案:

答案 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