我正在尝试使用PUT
来调用json-data
- 方法。但是,当我点击我的toggle_save()
按钮修改我收到的数据404 error
和未处理的拒绝时。
<div ng-show="contact" id="contacts_edit()">
<div>
<button class="btn btn-secondary" ng-hide="editMode" ng-click="toggle_edit()"> Edit </button>
<button class="btn btn-success" ng-show="editMode" ng-click="toggle_save(cts.selectedcontact)"> Save </button>
</div>
<b> Street:</b>
<p ng-hide="editMode">
{{cts.selectedcontact.location.street}}
</p>
<input type="text" ng-show="editMode" ng-model="cts.selectedcontact.location.street"><br/>
$scope.toggle_save = function(contacts, id) {
$scope.selectedcontact = [];
$http({
method: 'PUT',
url: 'http://localhost:3000/contacts/' + contacts.editmode,
data: {
selectedcontact: contacts.selectedcontact
}
}).then(function(data) {
console.log(data)
$scope.cts.selectedcontact = data;
})
}
答案 0 :(得分:0)
您可以在catch块中处理未处理的拒绝。由于API调用中的某些错误,您的API失败了。确保联系人数据及其属性正确无误。
<强> HTML 强>:
<button class="btn btn-success" ng-show="editMode" ng-click="toggle_save(cts.selectedcontact)"> Save </button>
JS :
$scope.toggle_save = function(contacts) {
$scope.selectedcontact = [];
$http({
method: 'PUT',
url: 'http://localhost:3000/contacts/' + contacts.editmode,
data: {
selectedcontact: contacts.selectedcontact
}
}).then(function(data) {
console.log(data)
$scope.cts.selectedcontact = data.data;
}).catch(function(data) {
//handle rejections here
});
}
答案 1 :(得分:0)
404错误即将发生,因为API无法访问该网址。
测试它的最简单方法是在浏览器中复制和粘贴URL。
可以通过在.then()之后放置.catch()来解决未处理的拒绝问题。拒绝将作为参数传递给此。您可以控制或采取适当的措施。
$scope.toggle_save = function(contacts) {
$scope.selectedcontact = [];
$http({
method: 'PUT',
url: 'http://localhost:3000/contacts/' + contacts.editmode,
data: {
selectedcontact: contacts.selectedcontact
}
}).then(function(data) {
console.log(data)
$scope.cts.selectedcontact = data.data;
}).catch(function(data) {
//handle rejections here
});
}