Ответы пользователя по тегу JavaScript
  • Как выполнить GET запрос в angularjs 2 к localhost?

    agladkov
    @agladkov
    1. Для начала нужно понимать как работает HTTP. Это клиент-серверная архитектура.
    2. Angular работает в браузере - клиент.
    3. npm start (ng serve) - запускает простейший веб-сервер, который отдает статические файлы с кодом Angular для работы в браузере.

    У запущенного веб- сервера нет файла localhost:4200/api/data.json

    Если хочешь что бы тестовый веб-сервер отдавал статический файл data.json, то нужно копать в сторону "ng server static files"

    А это параметр assets в конфигурационном файле angular-cli.json
    Ответ написан
  • Как отправить форму с первого клика?

    agladkov
    @agladkov
    У тебя валидатор вешается на форму только при первом клике, соответственно при втором он уже отрабатывает.
    Убери код $('body').on('submit', ...
    Вешай валидатора сразу на форму.
    Код $(form).validate(... не валидирует по запросу, а вешает валидатора на форму.

    Полный кусок кода.
    $(document).ready(function() {
        // Загружаем заказ
        function getOrderData() {
            $('#order_data').load('/ajax/ajaxorder/GetOrderData', {order_id: $('#order_id').val()});
        }
        getOrderData();
    
        $('form[data-destination="order-form"]').validate({
                        //Правила ...
                        
                        //Текста предупреждений...
                        
                        //Обработчик и отправка данных
                        submitHandler: function(form) {
                            $(form).ajaxSubmit({
                                success: getOrderData
                            });
                        }
            });
        }); 
    });

    У тебя сейчас так?
    Ответ написан
  • Как связать AnularJs Route и Symfony Routing?

    agladkov
    @agladkov
    Несмотря на то, что в первом вопросе всё решили, оставлю своё решение первоначального вопроса.

    Во-первых, мы просим ангуляр при запросах на сервер отправлять заголовок 'X-Requested-With':
    $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

    Соответственно теперь на серверной стороне мы всегда знаем это первичная загрузка шаблона, либо запрос от ангуляра:
    if ($request->isXmlHttpRequest())
    Если первичная загрузка, то отдаем базовый шаблон, например '::layoute.html.twig', в котором область под шаблон конкретной страницы обернута в ngView.
    Если запрос от ангуляра, то обрабатываем запрос и отдаем подготовленный шаблон для втсавки в ngView.

    Мы делаем так, потому что мы генерим шаблон на основании прав пользователя.
    Данные для шаблона отдаем через ngInit.

    Такая схема так же дает возможность достаточно просто работать с формами: генерировать со всеми нужными атрибутами, отправлять ангуляром в правильном виде симфони и соответственно выводить результаты обработки.
    Ответ написан
    2 комментария
  • Как реализовать ассинхронную загрузку данных в шаблон AngularJS?

    agladkov
    @agladkov
    1. Помимо $http можно еще использовать $resource
    Ваш пример
    $http.get('backend/?route=notes:list').success(function (data) {
      ...
    });

    2. если у вас есть вызовы, не контролируемые AngularJS, например callback от $.ajax, то операции над $scope надо оборачивать в $scope.$apply
    3. у вас ошибка в коде: console.log
    4. @maxaon дело говорит
    5. load, переданный в ListCtrl, будет содержать в себе promise, а не dataService
    6. в примере, на который ссылаетесь контроллер узнал о dataService не через resolve, а через зависимость, что вы так же делаете, в примере resolve скорее используется как неявный вызов метода dataService.load с нужными параметрами, вместо передачи их в контроллер
    7. callback, переданный $.ajax ничего не знает о $scope

    В общем замение $.ajax на $http, уберите $scope из success, поправьте console и скорее всего заведется. Контроллеру оставьте dataService.
    Ответ написан
    Комментировать
  • Писать ли продолжение статьи про Танки на канвасе?

    agladkov
    @agladkov
    Буквально на прошлой неделе наткнулись на вашу статью, посмотрели на дату сатьи, на вашу активность на хабре, поняли что проект умер и начали писать собственное чудо.
    Уже дописываем реализацию. Потыкать, надеюсь, можно будет уже на следующей неделе.
    Сервер у нас на nodejs, клиент на js, отрисовка как и у вас в canvas.
    Ответ написан
    2 комментария