Ответы пользователя по тегу Angular
  • Как выполнить 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
    Ответ написан
  • Как в angular.js собрать все поля?

    agladkov
    @agladkov
    Повесьте $watch на formData:
    $scope.$watch('formData', function () {
                // submit $scope.formData;
            }, true);
    Ответ написан
    Комментировать
  • Как связать 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.
    Ответ написан
    Комментировать