0

angularjs と電子メール入力タイプに問題があります。

ディレクティブを使用して動的入力を作成したいのですが、入力タイプの検証にバグがある可能性があります。これが私のテストのjsfiddleです http://jsfiddle.net/NPCHr

トラブルを避けるために、このトリックを使用する必要があります

element.find('input')[0].type = input.type;

入力に ​​2 番目の文字があると、モデル フィールドが消えます (html パネルで)

なぜこれがバグなのか、それとも何か間違っているのかわかりませんか?

4

1 に答える 1

0

ディレクティブの問題は、電子メールの検証が機能しないことでtypeはなく、動的属性が AngularJS (および jQuery BTW) でサポートされていないことです。これは、IE がオンザフライで入力の型を変更することを許可していないためです ( Changing the <input> type in IE with JavaScript )。

このトピックは AngularJS メーリング リストで詳細に議論されました。参考文献はhttps://groups.google.com/forum/#!topic/angular/Itl-fYzeF18で、誰かがあなたとまったく同じ問題を抱えていました。

この状況から抜け出す方法は、$compileサービスを使用して手動でテンプレートをコンパイルすることです。残念ながら、これは些細なことではありません。ここでいくつかの実験の証拠を見ることができます: https://github.com/angular-ui/angular-ui/pull/191

別のより簡単な方法は、ngIncludeディレクティブを使用して、タイプに基づいて異なる入力を含めることです。さらに別の可能性は、コンパイル機能を使用して、テンプレートのマークアップを手動で変換することです。しかし、そうです、これらの手法はすべて、重要なコードを数行必要とします。

于 2013-02-18T15:28:04.250 に答える