使用 ngResource 更改对字符串的响应
Change in response to a string by using ngResource
我有一个问题,所以响应不是字符串,而是 {"0":"3","1":"2"} 的形式。相反,我会得到像数字这样的答案,所以在这种情况下是 32。
app.factory('Claims', ['$resource', function($resource) {
return $resource('/portal/rest/registerClaim', null,
{
'create': { method: 'POST' }
});
}]);
app.controller('ClaimCtrl', ['$scope', 'Claims', function($scope, Claims) {
$scope.registerClaim = function (PIN) {
console.log(PIN);
var obj = {
"t":t,
"a":"t",
"b":"z",
"c":"x",
"d":"q"
};
Claims.create(obj).$promise.then(function(resp) {
//$scope.resp = resp;
$scope.resp = Object.keys(resp).map(function(val) {
return val;
}).join('');
console.log(resp);
}
}]);
然后在 html 文件中我有
<div class="response-group">
<p>{{resp}}</p>
</div>
据我了解您的问题,这可能就是您要查找的内容:
var myArr = [];
for (var key in resp) {
if (typeof resp[key] === 'string' || typeof resp[key] === 'number') {
myArr.push(resp[key]);
}
}
$scope.resp = myArr.map(function(val) {
return val;
}).join('');
确保在 .then()
回调中执行此操作。
这会将对象 属性 值转换为数组,然后您可以使用 join()
函数将其转换为字符串。
{"0":"3", "1", "2"}
将成为:
["3", "2"]
在 Object.keys(obj)
之后调用 .join('')
它将变成:
"32"
这样使用:
Claims.create(obj).$promise.then(function(resp) {
var myArr = [];
for (var key in resp) {
if (typeof resp[key] === 'string' || typeof resp[key] === 'number') {
myArr.push(resp[key]);
}
}
$scope.resp = myArr.map(function(val) {
return val;
}).join('');
});
我有一个问题,所以响应不是字符串,而是 {"0":"3","1":"2"} 的形式。相反,我会得到像数字这样的答案,所以在这种情况下是 32。
app.factory('Claims', ['$resource', function($resource) {
return $resource('/portal/rest/registerClaim', null,
{
'create': { method: 'POST' }
});
}]);
app.controller('ClaimCtrl', ['$scope', 'Claims', function($scope, Claims) {
$scope.registerClaim = function (PIN) {
console.log(PIN);
var obj = {
"t":t,
"a":"t",
"b":"z",
"c":"x",
"d":"q"
};
Claims.create(obj).$promise.then(function(resp) {
//$scope.resp = resp;
$scope.resp = Object.keys(resp).map(function(val) {
return val;
}).join('');
console.log(resp);
}
}]);
然后在 html 文件中我有
<div class="response-group">
<p>{{resp}}</p>
</div>
据我了解您的问题,这可能就是您要查找的内容:
var myArr = [];
for (var key in resp) {
if (typeof resp[key] === 'string' || typeof resp[key] === 'number') {
myArr.push(resp[key]);
}
}
$scope.resp = myArr.map(function(val) {
return val;
}).join('');
确保在 .then()
回调中执行此操作。
这会将对象 属性 值转换为数组,然后您可以使用 join()
函数将其转换为字符串。
{"0":"3", "1", "2"}
将成为:
["3", "2"]
在 Object.keys(obj)
之后调用 .join('')
它将变成:
"32"
这样使用:
Claims.create(obj).$promise.then(function(resp) {
var myArr = [];
for (var key in resp) {
if (typeof resp[key] === 'string' || typeof resp[key] === 'number') {
myArr.push(resp[key]);
}
}
$scope.resp = myArr.map(function(val) {
return val;
}).join('');
});