Сохранение и обратный вызов с ошибкой в Angular $Resource

#angularjs

#angularjs

Вопрос:

Это базовое веб-приложение angular с представлением html и модельным классом контроллера angular

Мой файл сценария angular controller содержит

  var taskResource = $resource("http://localhost:3000/api/tasks/:id", { id: '@id' });

 $scope.tasks = taskResource.query();

  noError =  function() {
        $scope.error = "";

    }

    onFailure = function () {
        $scope.error = "Error communicating with server";
    }

 $scope.changeTaskDone = function (task) {
        $scope.tasks.$save(task, noError, onFailure);

        };
  

Мой html содержит

  <tr ng-class="{'task-done': task.done}" ng-repeat="task in tasks | orderBy: '-priority'">
                        <td class="small-cell">
                            <button type="button" class="btn btn-xs btn-danger" ng-click="deleteTask(task)">
                                <span class="glyphicon glyphicon-remove"></span>
                            </button>
                        </td>
                        <td class="small-cell">
                            <input type="checkbox" ng-model="task.done" ng-change="changeTaskDone(task)" />
                        </td>
  

Обратные вызовы noError и OnFailure не вызываются.

РЕДАКТИРОВАТЬ localhost — это разработанный мной сервер узлов. Что я должен отправить с сервера узла, чтобы успешный обратный вызов был активирован на стороне клиента. Теперь он отправляет только res.status (200);

Комментарии:

1. Методы не найдены или не вызываются? Вы получаете какое-либо сообщение об ошибке?

2. Методы не вызываются. Я использую Visual studio. Поставил точку отладки на onError и OnFailure, и они не попали

3. когда я останавливаю сервер localhost, вызывается OnFailure. Итак, обратный вызов с ошибкой работает. Но ошибка успешного обратного вызова отсутствует.

Ответ №1:

Вам нужно вызвать ссылку, созданную с помощью $resource, например:

 $scope.changeTaskDone = function (task) {
    taskResource.save(task, noError, onFailure);
};
  

Комментарии:

1. taskResource.save(task, noError, OnFailure); обратный вызов onerror OnFailure работает при отключении локального хоста. но обратный вызов с успехом выполняется не при запуске localhost.

2. Можете ли вы привести пример?

3. ошибка была не на стороне клиента, а на стороне сервера. Я также программировал в node и express на стороне клиента

Ответ №2:

На узловом сервере я не использовал res.send() вместе с res.status(200);