Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Angularjs 角度资源(ngResource)赢得';在函数内部调用时,不要进行AJAX调用_Angularjs_Ngresource - Fatal编程技术网

Angularjs 角度资源(ngResource)赢得';在函数内部调用时,不要进行AJAX调用

Angularjs 角度资源(ngResource)赢得';在函数内部调用时,不要进行AJAX调用,angularjs,ngresource,Angularjs,Ngresource,我正在尝试使用ngResource进行AJAX调用,下面的代码“a”和“b”都会打印出来,但是从Table.import()进行的AJAX调用无法执行。如果我将AJAX调用移出onileread,那么它就可以工作了。有什么问题吗 var TableImportController = ['$scope','Table', 'project', 'table', function($scope, Table, project, table) { $scope.table = ta

我正在尝试使用
ngResource
进行AJAX调用,下面的代码“a”和“b”都会打印出来,但是从
Table.import()
进行的AJAX调用无法执行。如果我将AJAX调用移出
onileread
,那么它就可以工作了。有什么问题吗

var TableImportController = ['$scope','Table', 'project', 'table',
    function($scope, Table, project, table) {

    $scope.table = table;
    $scope.project = project;

    $scope.onFileRead = function(file) {

        console.log('a');
        Table.import({ data : file.data}, function() {

        }, function() {

        });
        console.log('b');
    };

}];
其中表是一个
ngResource

.factory('Table', function($resource) {
        var Table = $resource('/api/tables/:id:listAction/:itemAction',
            {
                id: '@id',
                listAction: '@listAction',
                itemAction: '@itemAction'
            },
            {
                update: { method: 'PUT' },
                import : { method: 'POST', params: { listAction: 'import' }},

            }
        );

        return Table;
});

您正在将$scope.onFileRead声明为函数。 什么叫阅读? 当您将调用移到函数外部时,它将作为初始化的一部分运行。 什么提供了输入文件?
可能是从DOM中的某个内容绑定到onFileRead函数。

我找到了答案。看起来我遇到了这个错误:


我通过在
scope.$apply(function(){})中包装AJAX调用(并最终将其移动到触发onFileRead回调的位置)解决了这个问题

能否包含Table.import的代码?@YeLiu添加了Table.import()onFileRead是自定义指令中的回调(独立作用域,参数为“&”)$正在正确调用scope.onFileRead()。