我收到了一个从数据库中返回一些值的服务。运作良好:(该服务称为朋友)
get: function(friendId) {
// $http returns a promise, which has a then function, which also returns a promise
promise2 = $http({
url: "http://dev.tellthedj.de/db/getGutschein.php",
method: "POST",
data: {"gutscheinId":friendId}
}).then(function(response2) {
// The then function here is an opportunity to modify the response
// The return value gets picked up by the then in the controller.
return response2.data;
});
// Return the promise to the controller
return promise2;
}
此服务正在为正确的json返回正确的值。现在我需要在我的视图中显示这些值。因此我得到了这个控制器:
.controller('FriendDetailCtrl', function($scope, $stateParams, Friends) {
Friends.get($stateParams.friendId).then(function(b) {
$scope.friend = b;
console.log($scope.friend);
});
})
这应该是正确的想法!这是HTML
<ion-view title="{{friend.name}}">
<ion-content has-header="true" padding="true">
{{friend.id}}
{{friend.name}}
</ion-content>
</ion-view>
窗口为空。没有friend.id,没有friend.name。找不到错误...
更新 设置{{friend}}或{{friend | json}}正在视图中写入完整的返回json数据。当我尝试{{friend.name}}(包含在该json对象中)时,没有返回。
来自$ http服务的返回Object完全相同,就像来自另一个可用的Web服务的另一个Object一样!
答案 0 :(得分:0)
根据您的描述,服务器的响应似乎不是JSON对象,而是它的字符串表示形式。 尝试将JSON.parse()添加到您的代码中,如下所示:
promise2 = $http({
url: "http://dev.tellthedj.de/db/getGutschein.php",
method: "POST",
data: {"gutscheinId":friendId}
}).then(function(response2) {
// The then function here is an opportunity to modify the response
// The return value gets picked up by the then in the controller.
return JSON.parse(response2.data); //<--- PARSE STRING TO OBJECT
});