Javascript 带有Angular和django/python的URL中的JSON
我得到了一个文件输入,当我选择一个Javascript 带有Angular和django/python的URL中的JSON,javascript,python,angularjs,django,Javascript,Python,Angularjs,Django,我得到了一个文件输入,当我选择一个xlsx文件时,它将被转换为json。这已经起作用了。唯一的一点是,我想将json与我的文件一起使用 我明白了: app.js .directive('fileModel', ['$parse', function ($parse) { return { restrict: 'A', link: function(scope, element, attrs) { var model = $parse
xlsx
文件时,它将被转换为json。这已经起作用了。唯一的一点是,我想将json与我的文件一起使用
我明白了:
app.js
.directive('fileModel', ['$parse', function ($parse) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
var model = $parse(attrs.fileModel);
var modelSetter = model.assign;
element.bind('change', function(){
scope.$apply(function(){
modelSetter(scope, element[0].files[0]);
});
});
}
};
}])
.service('fileUpload', ['$http', function ($http, $scope, response) {
this.uploadFileToUrl = function(file, uploadUrl){
var fd = new FormData();
fd.append('file', file);
$http.post(uploadUrl, fd, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
})
.success(function(){
angular.json = $scope.json = response.converterfile;
})
.error(function(){
console.log("fail")
});
}
}])
.controller('ConverterCtrl', ['$scope', 'fileUpload', function($scope, fileUpload, response){
$scope.uploadFile = function(){
var file = $scope.myFile;
console.log('file is ' );
console.dir(file);
var uploadUrl = 'converterfile/';
fileUpload.uploadFileToUrl(file, uploadUrl);
};
}])
我使用partials,但这并不重要
converter.html
<form enctype="multipart/form-data" method="POST">
{% csrf_token %}
<input type="file" file-model="myFile"/>
<a class="btn btn-default" href="" ng-click="uploadFile()">upload me</a>
<div ng-controller="ConverterCtrl">
<table>
<tr ng-repeat="json in csv">
<td>{[ json.x ]} </td>
</tr>
</table>
</div>
所以我想从url中获取json
angular.json=$scope.json=response.converterfile
但是它说
有没有办法从fileuploadurl获取json并让它工作呢?首先,不要将前端错误与后端代码混淆。如果您的前端出现问题,则问题出在前端代码中 错误:
无法读取未定义的属性“converterfile”。
这似乎是一个未定义的错误。这基本上意味着没有定义变量。在这种情况下,对未定义的对象调用属性
(仅供参考,属性是类似于name.property
)的属性
因此,我们需要搜索converterfile
属性。因为这是抛出错误的属性
.success(function(){
angular.json = $scope.json = response.converterfile;
})
问题是,响应是未定义的。因此,为了防止此错误,我们需要将response
变量添加到response函数中:
.success(function(response){
angular.json = $scope.json = response.converterfile;
})
.success(function(){
angular.json = $scope.json = response.converterfile;
})
.success(function(response){
angular.json = $scope.json = response.converterfile;
})