[解決済み] `<input type="file"/>` の ng-model (ディレクティブ DEMO 付き)
2022-04-02 17:28:31
質問
type fileのinputタグにng-modelを使おうとしています。
<input type="file" ng-model="vm.uploadme" />
しかし、ファイルを選択した後、コントローラで、$scope.vm.uploadmeは未定義のままです。
選択したファイルをコントローラで取得するにはどうすればよいですか?
どのように解決するのですか?
ディレクティブで回避策を作りました。
.directive("fileread", [function () {
return {
scope: {
fileread: "="
},
link: function (scope, element, attributes) {
element.bind("change", function (changeEvent) {
var reader = new FileReader();
reader.onload = function (loadEvent) {
scope.$apply(function () {
scope.fileread = loadEvent.target.result;
});
}
reader.readAsDataURL(changeEvent.target.files[0]);
});
}
}
}]);
そして、inputタグはこうなる。
<input type="file" fileread="vm.uploadme" />
あるいは、ファイル定義だけが必要な場合。
.directive("fileread", [function () {
return {
scope: {
fileread: "="
},
link: function (scope, element, attributes) {
element.bind("change", function (changeEvent) {
scope.$apply(function () {
scope.fileread = changeEvent.target.files[0];
// or all selected files:
// scope.fileread = changeEvent.target.files;
});
});
}
}
}]);
関連
-
[解決済み] ng-pattern` - 数字だけをチェックする方法は?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み] 入力フィールドにフォーカスを当てるには?
-
[解決済み] なぜAngularJSはselectに空のオプションを含めるのですか?
-
[解決済み] あるAngularJSのコントローラが別のコントローラを呼び出すことはできますか?
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
-
[解決済み】ng-changeでng-objectが選択されるようになりました。
-
[解決済み】AngularJS - ng-modelを使用するディレクティブを作成します。
-
[解決済み] AngularJS: マルチパートフォームで簡単なファイルアップロードを実装するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Angularjs accordion ng-click on panel-header
-
[解決済み] AngularJSのグローバル変数
-
[解決済み] AngularJSのディープリンクとは何ですか?
-
[解決済み] シンプルなangularjsの日付入力
-
[解決済み] エラーです。10回の$digest()反復に達しました。動的なsortby述語で中断!?
-
angularjs が src で指定されたコンテンツを iframe 内で正しく表示しない
-
angularでのng-repeatとtrack by
-
[解決済み] Angularjsを使用してローカルストレージにデータを保存するにはどうすればよいですか?
-
[解決済み] AngularJSのコントローラを指定する:ngControllerと$routeProviderを使用する利点
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?