从输入的onchange调用函数

时间:2016-06-22 11:37:11

标签: angularjs

我正在使用控制器作为语法。

当我的文件输入改变时,我想触发一个功能。

怎么做?

下面是我的代码,带有$ scope语法

<input class="upload" type="file" accept="image/*" ng-model="image"
                onchange="angular.element(this).scope().uploadImage(this)">

3 个答案:

答案 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);
    }
  };
});

View JSFIDDLE

答案 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