0

我正在尝试使用 进行 AJAX 调用ngResource,在下面的代码中,'a' 和 'b' 都打印,但是来自的 AJAX 调用Table.import()没有进行。如果我将 AJAX 调用移到 之外onFileRead,那么它可以工作。可能是什么问题呢?

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

2 回答 2

0

我想到了。看起来我遇到了这个错误:https ://github.com/angular/angular.js/issues/2794#issuecomment-18807158 。

我通过将 AJAX 调用(并最终将其移至触发 onFileRead 回调的位置)包装在scope.$apply(function() { });

于 2013-07-26T13:38:51.490 回答
0

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

于 2013-07-26T02:10:44.253 回答