ng-app = "MetronicApp"
用法:控制输入在-999到999
<input type="number" name="wineScore" number-max="999" number-min="-999" ng-model="vo.number">
/**
* 控制输入最大值
*/
MetronicApp.directive('numberMax', function () {
return {
restrict: 'AE',
require: 'ngModel',
link: function (scope, element, attr, linkfn) {
var numberMax = Number(attr.numberMax);
scope.$watch(attr.ngModel,function(newValue,oldValue){
if(!newValue){
return;
}
if (angular.isNumber(numberMax) && !isNaN(numberMax)) {
if(newValue > numberMax){
var exp = attr.ngModel + '=' + oldValue;
element.val(oldValue);
scope.$eval(exp);
}
}
});
}
}
});
/**
* 控制输入最小值
*/
MetronicApp.directive('numberMin', function () {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attr, linkfn) {
var numberMin = Number(attr.numberMin);
scope.$watch(attr.ngModel,function(newValue,oldValue){
if(!newValue){
return;
}
if (angular.isNumber(numberMin) && !isNaN(numberMin)) {
if(oldValue == '-'){
var exp = attr.ngModel + '=' + undefined;
element.val(oldValue);
scope.$eval(exp);
}else if(newValue < numberMin){
var exp = attr.ngModel + '=' + oldValue;
element.val(oldValue);
scope.$eval(exp);
}
}
});
}
}
});