1
私は、入力中に有効期限の月と年の間に自動的に "/"を挿入する、クレジットカードのチェックアウトフォームに有効期限を入力するように設計しようとしています。 ngPattern検証を入力に導入したので、モデルは入力値を取得しません。 Angularでは、検証が成功した時点でモデルが入力値を取り上げることができます。これは基本的に私のコードのために私の気の利いた機能は動作しません。誰かがこれを回避する方法を見つけることができます。以下は私のコードです。issue with ngPattern
HTML
<input ng-keyup="checkout.updateExp()" class="form-control" type="text" maxlength="7" placeholder="mm/yy" required autocomplete="off" name="exp" ng-pattern="/\d{2}\s\/\s\d{2}/" ng-model="checkout.cf.exp">
コントローラ機能代わりNGパターンを使用してそれを行うことの正規表現を使用して手動で検証しない理由
vm.updateExp = function(){
var separator="/";
//add separator
if(vm.cf.exp.length==2){//-----> cannot process since ngPattern makes exp undefined till pattern is met
vm.cf.exp = vm.cf.exp.substring(0,2) + separator;
}
//remove separator
if(vm.cf.exp.length==4){
vm.cf.exp = vm.cf.exp.substring(0,1);;
}
};
フォーム名とフィールド名を指定するだけでfrom.expを使用できますか?私は角形モデルとして宣言する必要はありませんか?私はかなり新しい角度になっています。あなたがこれを明確にすることができれば、IDは感謝しています。 – alaboudi
@alaboudi - 正しい。また、コントローラとその対応するフィールドから名前でアクセスすることもできます(猫をスキンするには1つ以上の方法があります)。 – Igor
ありがとうございました。私はあなたのソリューションを実装しました。 – alaboudi