我有一个网络应用程序:Angular中的前端和Rails中的后端。 在我的应用程序中,我正在尝试使用Paperclip gem添加PDF文件并将其发送到S3存储。
这是前端的代码(我在网上找到了这段代码但不确定我是否正确地写了onchange部分。从这里得到它:Use angular js to submit file via rails paperclip ):
<input type="file" name="attachment" onchange="angular.element(this).scope().uploadFile(this)">
这是我的uploadFile的javascript方法:
$scope.uploadFile = function(files) {
var fd = new FormData();
fd.append('user[attachment]', files[0]); // 'user[avatar]' is important, so that params[:user][:avatar] contains the file, as expected by Rails
$http.put('/users.json', fd, { // The update method of the users controller
withCredentials: true,
headers: {
'Content-Type': undefined,
'X-CSRF-Token': $('meta[name=csrf-token]').attr('content')
},
transformRequest: angular.identity
}).success(function(e) {
console.log(e);
}).error(function(e) {
console.log(e);
});
};
这就是我配置这个javascript文件的方式:
app.controller('PrescreeningBasicinfoCtrl', ['$scope', '$location', 'ApplicationModule', 'Restangular',
function ($scope, $location, ApplicationModule, Restangular) {
每当我上传文件时,都应该触发uploadFile。但是,它不会被触发。相反,我得到一个错误说
“Uncaught TypeError:angular.element(...)。scope(...)。uploadFile不是 功能“
我在这里做错了什么?