0
我試圖找出是否有一個指令,所有<input type="number">
元素綁定,而不必回去,並添加一個類,附加屬性等,每一種方式號碼字段?角1.4.7指令綁定到所有數字輸入
我有很多數量的領域,所以我希望以避免必須全部更新。
我試圖找出是否有一個指令,所有<input type="number">
元素綁定,而不必回去,並添加一個類,附加屬性等,每一種方式號碼字段?角1.4.7指令綁定到所有數字輸入
我有很多數量的領域,所以我希望以避免必須全部更新。
由於它不會出現有特異性結合於輸入類型的方式,我剛結束了創建綁定到每個輸入端的簡單的指令,然後分離該指令的功能的數量類型的輸入。
.directive('input', ['$document', '$log', '$filter', function ($document, $log, $filter) {
return {
restrict: 'E',
require: '?ngModel',
scope: {
directiveConfig: '=',
controllerInterface: '='
},
link: function (scope, element, attrs, ngModelCtrl) {
// --------------------------------------------------------------
// Formatters & Parsers for `input[type="number"]` only
// --------------------------------------------------------------
if (attrs.type === "number") {
// Prevents number inputs from using scrolling to change number.
element.bind('mousewheel', function (event) {
event.preventDefault();
});
// Prevents number input from changing with up/down arrow keys and
// instead simulates tabbing.
element.bind("keydown keypress", function (event) {
var inputs = element.closest('form').find(':input');
switch (event.which) {
case 38:
// Arrow Up: 38
inputs.eq(inputs.index(element) - 1).focus();
event.preventDefault();
break;
case 40:
// Arrow Down: 40
inputs.eq(inputs.index(element) + 1).focus();
event.preventDefault();
break;
default:
break;
}
});
// Ensures that only numbers can be entered.
var numericUserInput = function(value) {
var parsed = null;
if ($filter('exists')(value)) {
parsed = parseFloat(value.toString().replace(/[^0-9.]+$/, ''), 10);
if (typeof(value) != "number") {
parsed = null;
}
if (parsed !== value) {
ngModelCtrl.$setViewValue(parsed);
ngModelCtrl.$render();
}
}
return parsed;
}
ngModelCtrl.$parsers.push(numericUserInput);
}
}
}
}])