JSON オブジェクトから動的フォーム入力を作成する Angular.js アプリを作成しようとしています。
まず、JSON オブジェクト (フィールドと呼ばれる) があります。
[
{"field_id":209,"form_id":1,"name":"firstname","label":"First Name","type":"text"},
{"field_id":210,"form_id":1,"name":"lastname","label":"Last Name","type":"text"},
{"field_id":211,"form_id":1,"name":"email","label":"Email","type":"text"},
{"field_id":212,"form_id":1,"name":"picture","label":"Picture","type":"file"},
{"field_id":213,"form_id":1,"name":"address","label":"Address","type":"file"},
{"field_id":214,"form_id":1,"name":"password","label":"Password","type":"password"},
{"field_id":215,"form_id":1,"name":"","label":"","type":"submit"}
]
オブジェクトキーtype
は、フォームの入力タイプです。下記参照:
<p ng-repeat="field in fields">
{{field.name}} : <input type="{{field.type}}" value="{{record.data[field.name]}}" />
</p>
submit
これで、 、text
、password
、checkbox
およびradio
フィールドに対して完全に正常に機能します。ただし、タイプが の場合file
、入力タイプを に設定しますtext
。
テキストを forに置き換える{{field.name}}
と、 が出力されていることが確認できます。{{field.type}}
file
静的に変更<input type="{{field.type}}"...
する<input type="file"...
と、ファイル入力が正しく表示されます。
入力タイプをファイルとして動的に設定できないのはなぜですか?