从输入的 onchange 调用一个函数。
原因:需要在输入的onchange
事件中调用一个函数。
解决方法:使用Angular的scope.$watch
函数。在控制器中添加以下代码:
scope.$watch("image", function(newValue, oldValue) { // 在这里可以执行任意操作 scope.uploadImage(newValue); }
关于scope.$watch
的更多信息,请参考https://docs.angularjs.org/api/ng/type/$rootScope.Scope。
这样,当输入的image
值发生变化时,就会调用uploadImage
函数。
问题:如何在输入的onchange事件中调用一个函数?
原因:根据github.com/angular/angular.js/issues/1375,在中,不支持使用ng-change事件。
解决方法:可以使用ng-change="nameOfFunction()"来触发输入的onchange事件。或者可以使用angular-file-upload作为一个可行的解决方案。
在这个问题中,用户想要实现一个功能,即在文件输入框的值发生变化时调用一个函数。根据提供的代码和解释,我们可以得出以下结论和解决方法。
问题的出现原因:
- 文件输入框的 onchange 事件默认不会触发任何函数调用。
- 无法直接在 HTML 中使用 onchange 属性调用函数。
解决方法:
- 创建一个自定义指令,用于监听文件输入框的变化。
- 在指令的 link 函数中绑定 onchange 事件,并在事件触发时调用指定的函数。
下面是解决问题的代码和步骤:
1. 在 HTML 文件中,添加一个文件输入框,并使用自定义指令 "custom-on-change" 来监听其变化,并指定要调用的函数。
2. 在控制器的 JavaScript 文件中,定义要调用的函数 "uploadFile",并获取文件输入框中的文件。
app.controller('myCtrl', function($scope){ $scope.uploadFile = function(event){ var files = event.target.files; }; });
3. 创建一个名为 "customOnChange" 的自定义指令,并在其中绑定 onchange 事件,并指定要调用的函数。
app.directive('customOnChange', function() { return { restrict: 'A', link: function (scope, element, attrs) { var onChangeHandler = scope.$eval(attrs.customOnChange); element.bind('change', onChangeHandler); } }; });
通过以上步骤,我们可以实现在文件输入框的值发生变化时调用指定的函数。这是通过创建一个自定义指令,并在其中绑定 onchange 事件来实现的。
点击以下链接查看示例:[View JSFIDDLE](http://jsfiddle.net/sqren/27ugfym6/)