私はこれを理解するためにしばらく時間をとったが、誰かが入力タイプ=数字の桁数を制限するためのよりクリーンな方法を投稿することができる。問題の1つは、$ scope.variable = nullの場合にエラーがスローされるということです。入力フィールドには何も意味しません。入力タイプ番号のmaxLengthを防ぐ
<input type="number" model='modalName' ng-change="monitorLength('modalName',16)">
JS:私はその後、防止、数だけを考慮して、この上に展開する必要
$scope.monitorLength = function (model,maxLength) {
if ($scope[model] != null) { // prevent error on empty input field
var len = $scope[model].toString() ; // convert to a string
if (len.length > maxLength) { //evaluate string length
$scope[model] = parseInt(len.substring(0, maxLength));
// convert back to number or warning is thrown on input value not being a number
}
}
}
任意の数字以外の文字が含まれます「」 '、'記号:
var reg = new RegExp(/^\d+$/) ;
$scope.monitorLength = function (modal,maxLength) {
if ($scope[modal] != null) {
var len = $scope[modal].toString() ;
if (len.length > maxLength) {
$scope[modal] = parseInt(len.substring(0, maxLength));
} else if (!reg.test(len)) {
$scope[modal] = parseInt(len.substring(0, len.length-2));
}
}
}
ng-changeを呼び出すng-modalを抽出する方法はありますか?その呼び出しは、ng-change="monitorLength(10)"
でなければなりません。そして、関数内で何とか動的に呼び出すng-modalを取得しますか?
input要素に 'min'と' max' [attributes](http://www.w3schools.com/tags/att_input_max.asp)を使用できますか? – Icepickle
これは要素をラップして$ scopeにバインドするため、特定のHTML入力パラメータが機能しないか、無視されるため、アンギュラではありません。 – rolinger