所以我在控制器中有一个十进制值,如下所示:
// Controller
var MyController = function($scope) {
...
$scope.percentValue = 0.05; // can be stored
...
};
<!-- View -->
<span>{{percentValue}}</span>
<input ng-model="percentValue" />
使用上面的代码,input
元素中的值是0.05
- 但是,我想允许用户输入一个整数值,如5
.
所以如果$scope.percentValue是0.05
,我想5
在输入元素中显示它。如果用户输入5
,则$scope.percentValue应该是0.05
。
然而,这里棘手的是我只想更新视图值——这意味着span
元素仍应显示0.05
。只有输入元素中的值应该是5
。
我正在尝试使用ngModel来实现这一目标,但我仍在苦苦挣扎。
这就是我现在所拥有的:
var MyDirective = function() {
function link(scope, element, attrs, ngModel) {
ngModel.$render = function() {
element.val(ngModel.$viewValue || '');
};
ngModel.$formatters.push(function (value) {
return value * 100;
});
element.on('change blur', function() {
ngModel.$setViewValue(element.val());
});
}
return {
restrict: 'A',
require: '?ngModel',
scope: {},
link: link
};
};
请指教!!