[解決済み】AngularJs:ファイル入力フィールドの変更をチェックする方法は?
質問
私はangularの初心者です。HTMLの'file'フィールドに'change'が発生したときに、アップロードされたファイルのパスを読み取ろうとしています。onChange」を使用すると動作しますが、「ng-change」を使用してそれをアンギュラー方法で使用すると動作しません。
<script>
var DemoModule = angular.module("Demo",[]);
DemoModule .controller("form-cntlr",function($scope){
$scope.selectFile = function()
{
$("#file").click();
}
$scope.fileNameChaged = function()
{
alert("select file");
}
});
</script>
<div ng-controller="form-cntlr">
<form>
<button ng-click="selectFile()">Upload Your File</button>
<input type="file" style="display:none"
id="file" name='file' ng-Change="fileNameChaged()"/>
</form>
</div>
fileNameChaged() が呼び出されることはありません。Firebugでもエラーは表示されません。
解決方法は?
File Upload コントロールのバインディングがサポートされていない
https://github.com/angular/angular.js/issues/1375
<div ng-controller="form-cntlr">
<form>
<button ng-click="selectFile()">Upload Your File</button>
<input type="file" style="display:none"
id="file" name='file' onchange="angular.element(this).scope().fileNameChanged(this)" />
</form>
</div>
ではなく
<input type="file" style="display:none"
id="file" name='file' ng-Change="fileNameChanged()" />
を試してみてください。
<input type="file" style="display:none"
id="file" name='file' onchange="angular.element(this).scope().fileNameChanged()" />
注意:この場合、angularアプリケーションは常に デバッグモード . デバッグモードが無効になっている場合、実運用コードでは動作しません。
を変更し、関数内で の代わりに
$scope.fileNameChanged = function() {
alert("select file");
}
を試してみてください。
$scope.fileNameChanged = function() {
console.log("select file");
}
以下は、ドラッグドロップによるファイルアップロードの動作例です。 http://jsfiddle.net/danielzen/utp7j/
Angular ファイルアップロード情報
ASP.NetでAngularJSのファイルアップロードを行うためのURL
https://github.com/geersch/AngularJSFileUpload
NodeJSでプログレス付きAngularJsネイティブマルチファイルアップロード
http://jasonturim.wordpress.com/2013/09/12/angularjs-native-multi-file-upload-with-progress/
ngUpload - iframeを使用してファイルをアップロードするためのAngularJSサービス
関連
-
[解決済み] Angularのui-routerでデフォルトの状態を設定する方法
-
angularjsのルーティングについて $stateと$stateParamsの話
-
[解決済み] AngularJSとHandlebars - 両方必要なのかどうか
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] 入力フィールドにフォーカスを当てるには?
-
[解決済み] 検索エンジンはAngularJSアプリケーションをどのように扱っているのか?
-
[解決済み] AngularJSのng-repeatでキーと値を反復処理する方法は?
-
[解決済み] 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 ローカルデータストレージ LocalStorage
-
[解決済み] 適用がすでに進行中のエラー
-
[解決済み] data-ng-file-selectが動作しないのはなぜですか?
-
[解決済み] angularjsでチャートを作成する【終了】。
-
[解決済み] Angularjsを使用してローカルストレージにデータを保存するにはどうすればよいですか?
-
[解決済み] angularJSの::の意味するところ
-
[解決済み] Ui-srefがクリッカブルリンクを生成しない/動作しない
-
[解決済み] 子コントローラから親スコープにアクセスするAngularJS
-
[解決済み] `<input type="file"/>` の ng-model (ディレクティブ DEMO 付き)
-
[解決済み】HTML入力ファイルの選択イベントが、同じファイルを選択しても発生しない。