我在angularJs中使用服务从服务器检索信息。 使用邮递员,如果我调用此URL http://localhost:8080/api/public/v1/indirizzo/zona?stradaId=5786&civico=53r服务器应答字符串0480170061900。
我的服务是
var resourceUrl = 'api/public/v1/indirizzo/:type';
return $resource(resourceUrl, {}, {
civico: {
method: 'GET',
isArray: false,
params: {
type: 'civico'
},
cache: true
},
autocomplete: {
method: 'GET',
isArray: true,
params: {
type: 'autocomplete'
},
cache: true
},
zona: {
method: 'GET',
isArray: falsem,
params: {
type: 'zona'
},
cache: true,
transformResponse: []
}
});
在我的控制器中,我以这种方式称呼'zona'
function searchZona(stradaId, numeroCivico){
vm.stradaId = stradaId;
return Indirizzo.zona({stradaId: stradaId, civico: numeroCivico}).$promise.then(function(data){
vm.zona = data;
console.info("ZONA ID: ", vm.zona);
return data;
}, function(error){
AlertService.error(error.data.message);
});
}
一切正常,但vm.zona有这个信息
{"0":"0","1":"4","2":"8","3":"0","4":"1","5":"7","6":"0","7":"0","8":"6","9":"1","10":"9","11":"0","12":"0"}
为什么呢?可以在字符串中转换它,就像服务器的答案一样吗?
答案 0 :(得分:1)
重要的是要意识到调用src/
yarn.lock
node_modules
对象方法会立即返回一个空引用(对象或数组,具体取决于$resource
)。从服务器返回数据后,将使用实际数据填充现有引用。
AngularJS框架使用angular.copy填充引用。如果源不是对象或数组,则不会复制任何内容。
isArray
函数可以转换字符串响应,但它必须将响应转换为数组或对象才能使用angular.copy