我正在尝试使用ngResource
进行AJAX调用,在下面的代码中,'a'和'b'都会打印,但来自Table.import()
的AJAX调用无法进行。如果我将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;
});
答案 0 :(得分:0)
您将$ scope.onFileRead声明为函数。 什么是onFileRead? 将调用移到函数外部时,它将作为初始化的一部分运行。 什么提供输入文件? 可能从DOM中的某些东西绑定到onFileRead函数。
答案 1 :(得分:0)
我明白了。看起来我遇到了这个错误:https://github.com/angular/angular.js/issues/2794#issuecomment-18807158。
我通过在scope.$apply(function() { });