我尝试使用移动设备捕获图像,然后对该文件执行某些逻辑操作。我在桌面上工作正常,但更改事件似乎没有在移动设备上启动(仅通过IOS测试)。
我使用自定义指令来侦听更改事件,因为您无法在文件输入上使用ng-model。
HTML:
<input type="file" accept="image/*" capture="camera" file-change="getFile">
我的控制器:
app.controller("pageCtrl", ["$scope", function ($scope) {
$scope.getFile = function (e) {
var file = e.target.files[0]
};
}]);
我的文件更改指令:
app.directive('fileChange', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var onChangeHandler = scope.$eval(attrs.fileChange);
element.on('change', function (e) {
// never reaches this point on mobile devices
scope.$apply(function () {
onChangeHandler(e);
})
});
element.on('$destroy', function() {
element.off();
});
}
};
});