Angular onChange没有被触发

时间:2016-05-16 00:14:34

标签: javascript ruby-on-rails angularjs

我有一个网络应用程序: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不是   功能“

我在这里做错了什么?

0 个答案:

没有答案