私は構文としてコントローラを使用しています。入力のonchangeから関数を呼び出す
私のファイル入力が変更されたとき、私は機能をトリガーしたいです。
どうすればよいですか?以下
$スコープ構文で私のコード
<input class="upload" type="file" accept="image/*" ng-model="image"
onchange="angular.element(this).scope().uploadImage(this)">
私は構文としてコントローラを使用しています。入力のonchangeから関数を呼び出す
私のファイル入力が変更されたとき、私は機能をトリガーしたいです。
どうすればよいですか?以下
$スコープ構文で私のコード
<input class="upload" type="file" accept="image/*" ng-model="image"
onchange="angular.element(this).scope().uploadImage(this)">
角度scope.$watch
の使用です。お使いのコントローラでは、これを追加します。
scope.$watch("image", function(newValue, oldValue) {
// Do anything you want here
scope.uploadImage(newValue);
}
詳しい情報についてscope.$watch
:https://docs.angularjs.org/api/ng/type/$rootScope.Scope
をあなたがこの時に、この入力の変化が
トリガまたはHERE
'ng-change'は次のように' 'で動作しないと思う:https://github.com/angular/angular.js/issues/1375(私はテストをしなかった...) 。しかし、 'angle-file-upload'は確かに可能な解決策です。 – user3632710
として使用されますng-change="nameOfFunction()"
を使用することができ、hereを見つけましたカスタム・ディレクティブを使用して、入力ファイルの変更をlistenすることができます。
view.html:
<input type="file" custom-on-change="uploadFile">
controller.js:
app.controller('myCtrl', function($scope){
$scope.uploadFile = function(event){
var files = event.target.files;
};
});
directive.js:
app.directive('customOnChange', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var onChangeHandler = scope.$eval(attrs.customOnChange);
element.bind('change', onChangeHandler);
}
};
});
'ngの変更を使用しないのはなぜ=」 yourController.yourFunction() "'? – Matheno
type = "file"の場合、ng-changeは使用できません。 –