Ответы пользователя по тегу Angular
  • Как отправить CSRF-token в Angular 5?

    uaKorona
    @uaKorona
    Front-End разработчик
    Нужно дебажить ))
    1. Убедиться, что вы этот токен получили от сервера: в хедере или в куках.
    2. Если получили - тогда искать, в каком месте не отправляется
    Ответ написан
    Комментировать
  • Как дождаться окончания запроса, инициированного в другом компоненте?

    uaKorona
    @uaKorona
    Front-End разработчик
    Хорошим решением может быть использование Observable - а точнее BehaviorSubject.
    Он в отличие от Observable всегда возвращает последнее сохраненное значение.

    Вы инициализируете приложение, берете код из локалСторедж и помещаете его в BehaviorSubject.
    Все остальные компоненты подписываются на него и получают последнее значение.
    Если в какой-то момент, значение изменится (незнаю, пользователь выбрал другой язык) - вы опять помещаете его в BehaviorSubject и все подписанные на него компоненты (слушатели) будут уведомлены об изменении

    // Behavior Subject
    
    // инициализируем где-то в сервисе и помещаем первое значение 
    bSubject = new BehaviorSubject("a"); 
    
    // создаем метод который будет возвращать наш инстанс bSubject 
    getSubject = () => return this.bSubject
    
    // В компененте инжектим сервис, вызываем метод getSubject и подписываемся
    bSubject.subscribe((value) => {
      console.log("Subscription got", value); 
    // Тут выполняем действия при смене языка 
    });
    
    // Позже в другом месте пользователь меняет язык и мы сохраняем его опять в поток 
    bSubject.next("c"); // Subscription got c
    Ответ написан
    Комментировать
  • Как лучше хранить данные полученные по Ajax в Angular?

    uaKorona
    @uaKorona
    Front-End разработчик
    Если у вас есть корневой роут - можно на его уровне зарезолвить данные (список статей) - и они будут доступны на всех вложенных роутах
    Ответ написан
    Комментировать
  • [PrimeNg, Angular4] Несколько DataTable в нескольких вложенных TabView со множеством фильтров и бади темплейтами тормозит — как победить?

    uaKorona
    @uaKorona
    Front-End разработчик
    Быстродействие приложения закладывается на этапе дизайна.
    Конкретно в вашем случае UI выглядит жутко перегруженным. Технически можно добиться быстрой реализации, но, кажется это в целом не спасет ситуацию.
    Ответ написан
  • Сделать валидацию как на weboffice.tinkoff.ru?

    uaKorona
    @uaKorona
    Front-End разработчик
    А что вас собственно интересует - Форма регистрации ?
    Ответ написан
    Комментировать
  • Подключение внешнего javascript в angular 2?

    uaKorona
    @uaKorona
    Front-End разработчик
    Если правильно понял ваш вопрос и речь идет об использовании внешних скриптов, расположенных, например, в CDN - то я подключал через $script.js - JS loader & dependency manager

    Вот пример с подключением Facebook SDK (на 2016 г. правда, может уже что-то получше придумали)

    95e480c8b5fc49a6b23c1211594e0c41.png
    Ответ написан
    Комментировать
  • Как выполнять внешние скрипты при маршрутизации?

    uaKorona
    @uaKorona
    Front-End разработчик
    Вам нужно использовать функции! Серьезно.
    Их можно вызывать сколько угодно раз.
    Ответ написан
    Комментировать
  • Как правильно управлять данными в angular 1.x?

    uaKorona
    @uaKorona
    Front-End разработчик
    Хорошо, когда зоны ответственности распределены:
    Контроллер отвечает за отображение данных и пользовательский ввод.
    А сервис отвечает за обновление и хранение данных.

    В таком подходе очень лего реализовать такие паттерны, как отмена изменений пользователя и возврат к предыдущей версии. Так как она всегда хранится в сервисе.
    Или например, предупреждать пользователя, что есть несохраненные данные - перед уходом с формы, так как можно сравнить модель из контроллера с версией модели в сервисе.

    По хорошему - должна быть одна точка изменений данных -> Сервис, а контроллер должен работать с их копией
    Ответ написан
    5 комментариев
  • Как переделать директиву из AngularJS в Angular 2?

    uaKorona
    @uaKorona
    Front-End разработчик
    А в чем сложность ?
    СмОтрите спецификацию компонента в Angular 2 и переделываете.
    Попутно избавляетесь от всякого странного кода, типа "transclude: !0,"
    Ответ написан
    Комментировать
  • Как удалять аккаунт в firebase?

    uaKorona
    @uaKorona
    Front-End разработчик
    Если просит еще раз авторизоваться, то скорее всего, ваш текущий сеанс (сессия) завершилась по таймауту.
    Я бы в запрос на удаление аккаунта, добавил обработку ошибки.
    Вы пытаетесь удалить аккаунт -> Если возвращается ошибка, что пользователь не авторизован, то -> Выполнить авторизацию и затем повторить попытку удаление аккаунта

    А еще хорошо бы прикрутить счетчик неудачных попыток - чтобы вашуу систему не зациклило. Например, если после трех попыток удалить аккаунт не получилось - то показать пользователю ошибку / отправить на логин / дургое, что вы зохотите
    Ответ написан
    Комментировать
  • Что учить Angular или React новичку?

    uaKorona
    @uaKorona
    Front-End разработчик
    Angular 1 живее всех живых )) Также как и Jquery )
    Если тебе нужна работа - то быстрее будет освоить уровень джуна на angular 1 и смотреть в сторону версии 2.
    Ну да, и зарабатывать деньги )

    На ReactJS джунов, спрос или маленький или его вообще нет. Тут сразу все хотят минимум синьора.
    Но думаю и спецы по React-у/Redux оплачиваются лучше.
    И еще в отличие от angular 2 - это решение используется крупными компаниями:
    Facebook, AirBnb, Netflix

    А вот Google, который разработал angular - сам его не использует... )
    В заключении:

    Деньги ? -> Angular 1
    На перспективу ? -> React
    На очень далекую перспективу ? - Angular 2
    Ответ написан
    6 комментариев
  • Как правильно пользоваться service-worker или angular?

    uaKorona
    @uaKorona
    Front-End разработчик
    Посмотрите какой код ошибки возвращается и напишите ее обработку в интерсептере

    var interceptor = ['$rootScope', '$q', function ($rootScope, $q) {
    
            function success(response) {
                return response;
            }
    
            function error(response) {
                var status = response.status; // error code
    
                if ((status >= 400) && (status < 500)) {
                    $rootScope.broadcast("AuthError", status);
                    return;
                }
    
                if ( (status >= 500) && (status < 600) ) {
                    $rootScope.broadcast("ServerError", status);
                    return;
                }
    
                // otherwise
                return $q.reject(response);
    
            }
    
            return function (promise) {
                return promise.then(success, error);
            }
    
        }];
    Ответ написан
    Комментировать
  • Переход проекта с jQuery на Angular 1 или Angular 2 или React?

    uaKorona
    @uaKorona
    Front-End разработчик
    Вам нужно ответить на вопрос - нужно SEO для вашего сайта ?
    Если "Да" - то angular 1+ я бы не брал, будет мучительно )
    Да и с производительностью придется повозится, большие объемы данных - особенно, если они не статичны, а предполагают какие-то действия, будут проблемой.

    Остается Angular 2 или React
    Оба поддерживают серверный рендерин (если SEO)
    Оба производительны
    React по старше будет - это значит, что в большинстве случаев, можно найти ответы в комьюнити
    Как на меня Angular 2 - еще сыроват. Зато есть TypeScript - строгая типизация, интерфейсы, дженерики.

    В любом случае, выбрав из этих двух - не прогадаете
    Ответ написан
    Комментировать
  • Динамический контент из Angular + сторонние js библиотеки?

    uaKorona
    @uaKorona
    Front-End разработчик
    Правильно, вам, Сергей написал
    debug и еще раз debug - пока вы гадаете, в чем ошибка, а не точно знаете - исправить ее очень маленькие шансы, ничтожные! )
    Ответ написан
    Комментировать
  • Как реализовать ленивую загрузку компонентов в Angular 2?

    uaKorona
    @uaKorona
    Front-End разработчик
    WebPack позволяет делать подгрузку по требованию

    require.ensure(['jquery'], function(require) {
      require("jquery");
    });
    Ответ написан
    1 комментарий
  • На чем сфокусироваться в изучении WEB?

    uaKorona
    @uaKorona
    Front-End разработчик
    Вы можете запросто устроиться верстальщиком - обладая хорошим уровнем HTML, CSS, Bootstrap - можно нормально зарабатывать. А полученные деньги вложит ьв обучение, пойти на курсы того же JS
    Ответ написан
    Комментировать
  • Правильно ли я расставляю приоритеты в развитии?

    uaKorona
    @uaKorona
    Front-End разработчик
    Ваш основной ресурс - это время
    Для изучения новых технологий нужно время и время же нужно, чтобы получить опыт. Потом это можно будет продавать.
    Я бы рекомендовал вам досконально освоить то, в чем у вас уже есть опыт. Автоматизировать (читай ускорить) свою работу за счет таск раннеров, например gulp.
    И сэкономленное время использовать для изучения новых технологий:
    javascript + framework
    В идельном мире, конечно, лучше выучить сначала javascript, а затем какой-то фремворк
    Но мы живем в реальном мире )
    Ответ написан
    Комментировать
  • Почему Resolve возвращает пустой Promise?

    uaKorona
    @uaKorona
    Front-End разработчик
    Проблема в том, что вам немного глубже нужно разобраться с промисами в ангуляре

    then всегда возвращает новый promise

    Взглянем на пример:
    function asyncFunction() {  
      var deferred = $q.defer();  
      doSomethingAsync().then(function(res) {  
        res = asyncManipulate(res);
        deferred.resolve(res);
      }, function(err) {
        deferred.reject(err);
      });
    
      return deferred.promise; 
    }


    Здесь бессмысленно создается новое обещание $q.defer(). Автор кода явно не знал, что then итак вернет promise. Чтобы улучшить код, просто вернем результат then:
    function asyncFunction() { 
      return doSomethingAsync().then(function(res) {  
        return asyncManipulate(res);
      }); 
    }


    Ссылка на полную статью
    https://habrahabr.ru/post/221111/

    П.С. вывидите в консоль что у вас приходит в order - может он пустой ?
    Ответ написан
    Комментировать
  • Есть ли рабочий пример angularjs + spring security?

    uaKorona
    @uaKorona
    Front-End разработчик
    Весьма коряво!
    Я использую на БЕ своего ангуляр-приложения spring + security. Чтобы побороть авторизацию, пришлось сделать следующий костыль:
    Спринг возвращает свою собственную страницу авторизации с формой и куками.
    Мой партнер по БЕ разработке создал restful метод, в который я отправляю параметры из ангуляр приложения (логин + пароль + remember me признак) - а он получив эти параметры, эмулирует заполнение и сабмит спринговской формы и в ответе возвращает мне набор хэдеров + куки сформированные спринг секьюрити.
    В остальном (если не считать этого костыля) - это чистый restful.

    На основе набора ролей пользователя я уже на фронте определяю какие разделы меню/навигации видны пользователю.
    Теоритически, он может вручную ввести в браузере урл того раздела, который не виден и перейти в него.
    Но городить защиту на таком уровне не считаю нужным.
    Даже если он попадет на "недоступную" страницу - есть проверка роли на уровне restful API
    Ответ написан
    Комментировать
  • Методы оптимизации AngularJS?

    uaKorona
    @uaKorona
    Front-End разработчик
    1. Количество вотчеров на странице. Да-да ). Чем их меньше - тем лучше.
    2. One-time binding - Если у вас данные используются только для отображения (большие таблицы, например) и не подлежат модификации пользователя.
    3. ng-if вместо ng-show
    4. Избегайте ng-style. По возможности переносите в директивы и там jQuery.css()
    5. Избегайте {{ }}. Используйте вместо этого ng-bind где можно
    6. $compileProvider.debugInfoEnabled(false); - хорошо, но не забудьте включить, если у вас есть тесты.
    7. Профайлер. Как показывает практика, программисты оптимизируют одно, а тормозит другое.
    8. Общий совет - "тяжелую" логику, по возможности, переносите на сервер. Клиент, чем проще тем лучше.
    Ответ написан
    Комментировать