Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有Angular和django/python的URL中的JSON_Javascript_Python_Angularjs_Django - Fatal编程技术网

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;
})