Угловой Js $ HTTP-запрос и Ajaxcall $ .ajax запрос за и против в c # [дубликат]

Я просто ударил это тоже. Оказывается, что по крайней мере для меня это было связано с попыткой использовать win64-версию JRE с win32 Eclipse. Кажется, что win32 Eclipse требует win32 Java (то, что называется -586 в списке установщиков Java от Oracle / Sun).

Причина, по которой я использовал оба, заключается в том, что я пытался определить ошибку, которая проявилась только в 64-битном Eclipse, поэтому мне нужно сопоставить 32-битное.

Как только я установил BOTH версии «x64» (win64) и «i586» (win32) JRE на моей машине, все работает нормально и без ошибок 13. Возможно, вы оба установили одновременно.

11
задан laukok 1 January 2014 в 09:57
поделиться

2 ответа

Оба одинаковые

$ http ссылаются на скрипт angular.js

$. ajax передается из сценария jquery

  • и $ http не поддерживает async:false
  • $. ajax поддерживает async:false

Вы можете сделать это, используя angular.js таким образом

$http.get('server.php').success(function(response) {
            $scope.contacts = response.data;
        }).error(function(error)
    {
//some code    
});

, но async: true, не поддерживается в angular.js.

Если вам нужно остановить асинхронный обратный вызов, вы должны использовать $.ajax способ

Подробнее см. В этом обсуждении: from jquery $ .ajax to angular $ http

Изменить:

Как показать скрыть в angular js

<div ng-show="IsShow">xx</div>



  $http.get('server.php').success(function(response) {
                $scope.contacts = response.data;
                $scope.IsShow=true;
                $scope.$apply();
            }).error(function(error)
        {
           $scope.IsShow=false; 
           $scope.$apply(); 
    });
19
ответ дан Community 16 August 2018 в 02:26
поделиться
  • 1
    Благодарю. Могу ли я узнать, для чего **? – laukok 1 January 2014 в 09:03
  • 2
    И что $apply() для btw? благодаря! – laukok 1 January 2014 в 09:04
  • 3
    @lauthiamkok ** ничего. это смелая строка. $scope.$apply() означает, что $scope.IsShow=true применяется для Html. Но это, возможно, не нужно. – Ramesh Rajendran 1 January 2014 в 09:06
  • 4
    Благодарю. Я нахожу метод jquery более простым и более прямым. вам не кажется? – laukok 1 January 2014 в 09:18
  • 5
    @lauthiamkok, да, вы можете сделать это jquery. Итак, почему вы используете angular.js? вы можете сделать это, используя jquery или angular.js. оба являются лучшими. но angular.js помогает привязывать быстрее, чем jquery. Счастливое кодирование :) – Ramesh Rajendran 1 January 2014 в 09:22

Просто используйте Function.bind() для функции, которую вы передаете promise.then, чтобы поддерживать требуемый контекст. Например:

return $http({
    method: 'GET', 
    url:'server.php'
}).then(function(response) {
    $scope.contacts = response.data;
}.bind(this));

Тем не менее, я замечаю, что ваши обратные вызовы управляют элементами - то, что вам не нужно делать в Angular. Есть ли что-то конкретное, что вы пытаетесь сделать, но неспособное с обратным вызовом?

3
ответ дан Jeff Hubbard 16 August 2018 в 02:26
поделиться
  • 1
    Спасибо Джеффу. Мне нужно сделать только две вещи, как в $.ajax - 1. beforeSend: function() { $(this).html('loading...'); } и 2 - success: function (returndata, status, jqxhr) { $(this).hide().fadeIn(); }. – laukok 31 December 2013 в 18:31
  • 2
    Итак ... да, вместо этого вы должны использовать перехватчик запросов и ответов и показать / скрыть это на основе количества ожидающих запросов HTTP. – Jeff Hubbard 31 December 2013 в 18:44
  • 3
    см. мой ответ pls – Ramesh Rajendran 1 January 2014 в 08:45
Другие вопросы по тегам:

Похожие вопросы: