Ответы пользователя по тегу Angular
  • Как правильно юзать сервис для работы с данными в нем?

    alexiusp
    @alexiusp
    senior frontend developer
    Я бы разделил работу с моделью и http в разные модули. Тогда в модуле, отвечающем за запросы к серверу можно было бы реализовать и работу с промисами и кэширование по необходимости, а модуль, отвечающий за работу с моделью был бы очень лёгким и понятным. Нужна ли какая-либо пост-обработка пришедших данных или они уже приходят в удобном для представления формате? Если второе, то лучше работать напрямую с промисами - возвращать промисы в те компоненты, которым нужны соответствующие данные.
    Ответ написан
  • Как подгружать js по надобности в AngularJS?

    alexiusp
    @alexiusp
    senior frontend developer
    Погуглите. "Всё уже украдено до нас" (с).
    Я видел как минимум два варианта реализации AMD подхода с ангуляром.
    Дмитрий указал ссылку на хабр, где описан один из вариантов использования Require.js в связке с ангуляром.
    Ответ написан
    Комментировать
  • Как подойти к созданию формсетов в angularjs?

    alexiusp
    @alexiusp
    senior frontend developer
    Это слишком общий вопрос.
    Всё сильно зависит от того, как вы себе представляете интерфейс, что вы хотите получить в итоге.
    Нужна ли вам, например, возможность редактировать данные в сущностях, или вам нужен только вывод на просмотр?
    Скорее всего это должен быть master/detail список или список с фильтром. Зависит от ваших сущностей. Опять же сейчас модно представлять всё не списком, а карточками, a-la Facebook.
    Ответ написан
    Комментировать
  • Выполнение кода вложенного контроллера после завершения AJAX запроса внешнего котроллера?

    alexiusp
    @alexiusp
    senior frontend developer
    Damir Makhmutov совершенно верно написал. В контроллере - функционал, отвечающий за отображение данных, а в сервисах - собственно получение данных.
    Ответ написан
    Комментировать
  • Как определить факт изменения модели или скоупа angular.js?

    alexiusp
    @alexiusp
    senior frontend developer
    Согласен с Dmitry Dedukhin. Проще всего оформить это в виде директивы, которая будет хранить текущую модель, которая связана с полями для ввода, и последнюю сохранённую модель, с которой при каждом изменении текущей модели (что отлавливается с помощью $watch-ера) будет сравниваться. На этапе инициализации директивы нужно их проинициализировать одинаковым значением. При этом не забудьте, что если у вас значения не скалярные, то нужно делать angular.copy(), а то у вас будут ссылки на один и тот же объект и оно всегда будет равно друг другу.
    Ответ написан
    Комментировать
  • Как вызвать метод из шаблона в Angularjs?

    alexiusp
    @alexiusp
    senior frontend developer
    Вопрос сформулирован очень невнятно. Я тоже не совсем понял, что требуется.
    Включаю телепатию. Вы хотите, чтобы в шаблоне было записано некое имя функции, которая запускалась бы при загрузке этого шаблона, так?
    Вы хотите запустить функцию по завершению загрузки страницы или по завершению загрузки шаблона или это неважно? Хотелось бы конкретики, т.к. способов решения я вижу несколько.
    Ответ написан
  • Angular: Доступ к соседним scope или другой способ управления "соседями"

    alexiusp
    @alexiusp
    senior frontend developer
    Ну а чем ng-Show не устраивает?
    Создаёте массив флагов валидности соразмерный массиву использованному в ng-Repeat и ставите каждому элементу атрибут ng-Show. Примерно как-то так:
    <div ng-repeat="item in items" ng-Show="isValid[$index]">
    ...
    </div>

    Функция валидации должна ставить соответствующий флаг в истину, когда можно показывать следующее поле.
    Ответ написан
    Комментировать
  • AngularJS, синхронизация данных с сервера и модели после "Экшенов"

    alexiusp
    @alexiusp
    senior frontend developer
    По поводу синхронизации при удалении.
    Вариант 1: затемнять или вообще скрывать область таблицы на время синхронизации, чтобы "дёргание" не вызывало вопросов у пользователя
    Вариант 2: вместо $scope.items = lastData; делать обход массива, сравнивать полученные с сервера значения с имеющимися и менять, если есть чего.

    Очевидно, что второй вариант затратнее по ресурсам и вообще не слишком привлекателен. Если одновременно сидит два пользователя и изменилось две строки в таблице - это будет красиво, но если пользователей больше и изменений больше дёргание всё равно произойдёт из-за радикального изменения содержимого.

    Можно, на крайний случай, попытаться делать не радикальное приравнивание массивов, а построчное - может быть это немного сгладит картинку.
    Ответ написан
    Комментировать