我正在使用控制器作为语法。
当我的文件输入改变时,我想触发一个功能。
怎么做?
下面是我的代码,带有$ scope语法
<input class="upload" type="file" accept="image/*" ng-model="image"
onchange="angular.element(this).scope().uploadImage(this)">
答案 0 :(得分:5)
如找到here,您可以使用自定义指令来侦听输入文件中的更改。
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);
}
};
});
答案 1 :(得分:2)
使用角度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
答案 2 :(得分:1)
您可以使用ng-change="nameOfFunction()"
这将在此输入更改时触发
或使用HERE