可能是未处理的拒绝

时间:2017-09-20 05:57:32

标签: javascript html angularjs

我正在尝试使用PUT来调用json-data - 方法。但是,当我点击我的toggle_save()按钮修改我收到的数据404 error和未处理的拒绝时。

HTML:

<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/>

AngularJS:

$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;
  })
}

2 个答案:

答案 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
        });
  }