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()。