我正在尝试从服务器上传文件,但文件没有显示。对服务器的调用是从这段代码启动的:
'use strict';
angular.
module('phoneList').
component('phoneList', {
templateUrl: 'phone-list/phone-list.template.html',
controller: ['Phone',
function PhoneListController(Phone) {
this.phones = Phone.query();
this.orderProp = 'age';
console.log(this.phones);
}
]
});
该服务称之为:
'use strict';
angular.
module('core.phone').
factory('Phone', ['$resource',
function($resource) {
return $resource('phones/:phoneId.json', {}, {
query: {
method: 'GET',
params: {
phoneId: 'phones'
},
isArray: true
}
});
}
]);
返回代码为200,随后为304,表示上传成功。但是早期代码段中的console.log语句不会在控制台中显示电话。
答案 0 :(得分:1)
要记录结果,请使用$promise
对象的$resource
属性:
angular.
module('phoneList').
component('phoneList', {
templateUrl: 'phone-list/phone-list.template.html',
controller: ['Phone',
function PhoneListController(Phone) {
this.phones = Phone.query();
this.orderProp = 'age';
//console.log(this.phones);
//USE $promise property
this.phones.$promise.then(function(phones) {
console.log(phones);
}).catch(function (error) {
console.log("ERROR " + error.status);
});
}
]
});
重要的是要意识到调用$resource
对象方法会立即返回一个空引用(对象或数组,具体取决于isArray
)。从服务器返回数据后,将使用实际数据填充现有引用。
通过使用.then
属性的$promise
方法,$ q服务会延迟console.log
,直到数据从服务器返回。