npmを使用してダウンロードし、後ですべてを単一のファイルでブラウザ化するAngular Uploaderを使用しようとしています。エラーの詳細はここで確認できます
私はまだAngularJSに慣れていないので、エラーを理解できません。これが私のコードです
var angular = require('angular');
angular
.module('jobApp', [require('angular-material'), require('ng-file-upload')])
.controller('MainCtrl', ['$rootScope', '$scope', '$mdToast', '$animate', '$http', '$timeout', '$q', '$log', 'Upload',
function($rootScope, $scope, $mdToast, $animate, $http, $timeout, $q, $log, Upload) {
'use strict';
// Initialize the scope variables
$scope.$watch('files', function () {
$scope.upload($scope.files);
});
$scope.upload = function (files) {
if (files && files.length) {
for (var i = 0; i < files.length; i++) {
var file = files[i];
Upload.upload({
url: 'http://sr-recruit.herokuapp.com/resumes',
fields: {
'name': $scope.name,
'email': $scope.email,
'about': $scope.about
},
file: file
}).progress(function (evt) {
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
$scope.log = 'progress: ' + progressPercentage + '% ' +
evt.config.file.name + '\n' + $scope.log;
}).success(function (data, status, headers, config) {
$scope.log = 'file ' + config.file.name + 'uploaded. Response: ' + JSON.stringify(data) + '\n' + $scope.log;
$scope.$apply();
});
}
}
};
}]);
アップデート
現在、Browserify-shim を使用して、Angular-file-upload を Commonjs 形式で適切に囲んでいます。@ryan Johnson に感謝します。
ここにpackage.jsonがあります
{
"browser": {
"angular": "./node_modules/angular/angular.js",
"ng-file-upload": "./node_modules/ng-file-upload/dist/ng-file-upload-all.js"
},
"browserify-shim": {
"angular": {
"exports": "angular"
},
"ng-file-upload": {
"exports": "angular.module('ngFileUpload').name"
}
},
"browserify": {
"transform": [
"browserify-shim"
]
}
}
私はまだエラー
TypeError: Cannot read property '' of undefined
理由がわからない。参考までに、私は browserify に組み込まれている Laravel-elixir を使用してタスクを実行しています。