Ответы пользователя по тегу Angular
  • Как лучше строить приложение?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Профит от множества маленьких модулей в более гибком управлении зависимостями оных. Раскрывается он при тестировании и если у проекта растет количество зависимостей (обычное дело для больших проектов). В целом использовать тупую канкатенацию файлов на больших проектах уже не выйдет. Рекомендую webpack (с ним меньше проблем на старте).

    https://github.com/angular-class/NG6-starter - попробуйте такой подход. Он хорошо подходит к случаю с большими приложениями и довольно удобен (+ я там в gitter тусуюсь). Так же в angular 1.5 появится хелпер angular.component который еще чуть упростит все дело. Ну и angular styleguide почитайте.
    Ответ написан
    Комментировать
  • Как понять эту функцию angular?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Коль уж беретесь за angular - забудьте о том что бы работать с DOM напрямую. Вообще. Ни при каких обстаятельствах не пытайтесь даже получить доступ к элементу.

    Возможно правда что вы пытаетесь перевести код с jquery на angular, но тогда не понятно почему вы привели не JSON а какой-то js код который его разбирает.

    которая должна удалить дубли из текста.

    ng-repeat это примитив ангуляра для создания элементов для каждого элемента коллекции (массива). Ничего он удалять не должен. Вы это все должны сделать сами, простым Array.filter. Просто на JS. Ангуляр это UI фреймворк, обработка данных должна оставаться на вашей совести.

    Мне нужно знать что я делаю не верно

    Сделайте все просто на JS. На входе JSON, на выходе требуемая вами коллекция объектов. Затем эту коллекцию уже выводите через ngRepeat + биндинги.

    Вся соль ангуляра в том что бы полностью отделить логику обработки данных (что вы там фильтруете и под какие условия) от представления этих данных. Вместо прямой работы с DOM используйте датабиндинг.
    Ответ написан
    Комментировать
  • Как комбинировать обьекты c RESTful API с помощью Angular?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    angular тут не причем. Это вы уже сами должны разруливать. Так же можете посмотреть на библиотеки для работы с rest api (restangular, ngResource, js-data или любая другая популярная либа).

    но тогда теряется идея РЕСТ...

    Ну как бы да. Ресурсы это ресурсы. Они никакого отношения к базе не имеют. Но если по какой-то причине вам надо связать ресурсы вместе, то это не проблема. Ваша апишка, если у вас есть за ней контроль, должна быть удобной в использовании в первую очередь, загоны по restfull можно и оставить если это не несет практической пользы.

    p.s. если вам не понятно - предлагаю ознакомиться с примерами из jsonapi.org
    Ответ написан
    Комментировать
  • Как правильно сделать поиск по сайту в Angular?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    делаем запрос на сервак, получаем результаты поиска, выводим результаты поиска. В зависимости от типа ресурса генерим ссылки на просмотр.
    Ответ написан
    6 комментариев
  • Как правильно минифицировать AngularJs приложение?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    его к нормальной структуре - вынести контроллеры и все, что к ним прилагается, в отдельные папки

    Этот шаг несет весьма сомнительную пользу ну да не суть.

    ngmin() выдаст файлы в правильном порядке

    ngmin делает ровно то же что и ngAnnotate только хуже медленнее и вообще deprecated.

    Вообще ангуляру мягко скажем без разницы в каком порядке что там объявлено, можно конечно схлопотать проблем если провайдеры будут в самом низу... но это очень редкий кейс. Все разруливает система модулей ангуляра. В крайнем случае есть gulp-order.

    файл с модулем он подключил четвертым или пятым

    Если вы используете геттеры для модулей а не переменную:

    // плохо
    var app = angular.module('app', deps);
    // ...
    app.service('foo', FooService);
    
    // хорошо
    angular.module('app').service('foo', FooService);


    то ангуляр опять же все разрулит сам за счет ленивой инициализации модулей.

    все равно остались ошибки...

    Какие ошибки? Вы их не привели. Гадать тут не умеют.
    Ответ написан
  • Вот так задачка, вызвать javascript скрипт по запросу php?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    websockets, server push
    Ответ написан
    Комментировать
  • Как сделать pagination на angular?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    пишем сервис который будет нарезать наш контент на страницы, пишем компонент (директиву) который будет заниматься переходом по страницам. Так мы можем хоть на основе данных о размере вьюпорта нарезать на странички.
    Ответ написан
    Комментировать
  • Какие задачи вы дали были бы начинающему angular разработчику?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да и какие задачи вы делали когда только начинали?


    Мне дали помниться в зубы ангуляр (1.0 еще), 2 недели на изучение оного и проект который надо сделать... и пришлось делать... было весело)

    В целом помимо "подтянуть перед этим JS", сейчас я бы еще рекомендовал babel.js, без него уже не представляю как можно писать поддерживаемый JS код (можно конечно но его банально больше). Так же вам нужна удобная система сборки - рекомендую webpack, так как с ним проще стартовать и он форсит вас использовать модули. Рекомендую вот этот скелет проекта. Ну и приятный побочный эффект, у вас ваши сервисы не будут напрямую знать что они используются в контексте ангуляра.

    Что до ангуляра - для начала я бы рекомендовал таки почитать документацию, angular styleguide и т.д. Хотя бы недельку. Так же рекомендую с ним использовать TDD (именно юнит тесты с моками всех зависимостей, если тесты писать тяжко - надо придумать как сделать так что бы было попроще, например мокать не http а сервис и т.д.), при обучении особенно хорошо. Очень упрощает поиск слабых мест вашей архитектуры приложения а так же позволяет проще его менять.

    Если вы примите для себя пару простых правил, аля "стараться реже использовать все со знаком доллара напрямую", типа $scope в контроллеры не пихать, вообще поменьше зависимостей от ангуляра для ваших сервисов, стараться не юзать link у директив (ну или делать там только то для чего он нужен - для связывания директивы и DOM, мониторинг атрибутов и вызов контроллера директивы и т.д.), то жить станет чуть проще. Тогда ангуляр сам по себе станет чуточку проще. Ну и да, вообще не использовать независимые контроллеры (ни ng-controller ни контроллеры для маршрутов ngRoute ни для uiRouter, вообще посмотрите в сторону angular/router)

    По задачам.... я бы рекомендовал побольше писать различных компонентов (директивки), которые могут вам понадобиться. Например, так как я по большей части делаю админки на ангуляре, то мне полезны различные UI компоненты, которые можно реюзать, например, фильтры для списков. Это хорошее упрожнение как по мне, так как... ваши компоненты ничего не должны знать о том, как у нас хранятся данные и что вообще мы с ними планируем делать. Там можно побаловаться и с трансклюдами, и с зависимостями между директивами и т.д.

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

    А потом реализовать какую-нибудь апу. А лучше вместе, пописали директивки, попробовали их заюзать. Неудобно - пилим дальше.
    Ответ написан
    Комментировать
  • Как настроить route and services and controller?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    потому что роут с айдишкой перекрывает его, подпадает под правило. Либо поместите роут выше, либо укажите что в качестве ID могут быть только инты.

    и уже устал рыть просторы интернета


    почитайте angular-styleguide

    Это к сути вопроса не относится, просто замечания по коду.
    Ответ написан
    1 комментарий
  • Cложно ли будет перевести большой проект с angular 1.4 на angular 2?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Angular 1.3 meets Angular 2 - описание того как упростить переход с angular 1.x на angular2, а точнее каким правилам стоит придерживаться для этого.

    p.s. тыкал angular2, пишу на angular1.4, разница конечно существенна но не настолько критична что б уж совсем паниковать.
    Ответ написан
    Комментировать
  • Как получить список пользователей из динамически добавленных элеменов select?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    опять jquery-style...

    1) никогда не работайте с DOM на прямую. Вообще никогда. Если можно обойтись без этого - то обойдитесь без этого. Вместо ваших стремных кастылей с append и $parse используйте ng-repeat. Вместо ng-repeat для опций используйте ng-options.
    2) вместо link старайтесь использовать контроллер директивы. Пусть данные управляют представлением а не представление данными. link используется только для одной цели - работа с $scope и c DOM. Избегайте этого места.
    3) Для того что бы уведомить что что-то поменялось - используйте колбэки. Читать про изолированный скоуп и волшебный символ &.
    Ответ написан
    Комментировать
  • Как правильно использовать webpack + angular templateCache?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    https://github.com/angular-class/NG6-starter - как-то так. То есть angular template cache не нужен вообще.
    Ответ написан
    4 комментария
  • Как обрезать текст на Angular?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Комментировать
  • Авторизация на angular?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    отправляешь их на сервер, тот если все хорошо должен вернуть токен который вы будете слать в заголовках (или хранить в куках и тогда так же он будет в заголовках передаваться), и 401-ую ошибку если все плохо.
    Ответ написан
  • Как подключить в Jade использовать AngularJS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    input(type='text', ng-model="word")
    | {{world}}


    биндинги должны быть расставлены как содержимое элементов. Ну и да, у input не может быть вложенных элементов, а из вашего кода выходит что вы хотите именно так.
    Ответ написан
    5 комментариев
  • А расскажeте про promise и $resource?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    прочитайте нормальную стратью про промисы
    Ответ написан
    4 комментария
  • Как сделать цикл for на angular?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    даже отдаленно напоминающего простой старый добрый for я в ней не увидел .


    ng-repeat это не for, это директива для того что бы для каждого элемента коллекции создавать описанный элемент. То есть никакого императива аля "сделай мне 10 элементов". Только декларативное указание что для такого-то состояния должно быть так.

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

    Если ваши задачи сводятся к for - то вам не нужен ангуляр. Если вы хотите по старинке работать с DOM - вам не нужен ангуляр. Декларативное описание представления на основе текущего состояния намного удобнее императивной фигни которую вы хотите использовать.
    Ответ написан
    7 комментариев
  • AngularJS можно ли сделать полностью lazy приложение?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    нет такой возможности, во всяком случае из коробки. Почитайте дискуссию в официальном репозитории. В общем и целом для большинства проектов на ангуляре проще просто загрузить все один раз на клиент и работать с этим.

    Еще вариант - если у вас приложение грамотно разбито на директивы (а не контроллеры отдельные с вьюшками) то можно попытаться сделать ленивую подгрузку сервисов в фабриках + ленивую подгрузку директив. Чисто теоритически это возможно и чисто теоритически так можно подгружать лениво большую часть проекта.

    p.s. вроде как обещали в angular 1.5 сделать что-нибудь с этим но я не следил - для меня это без надобности. В Angular2 это будет по сути из коробки доступно так как в качестве системы модулей используется стандартные ES2015 модули.
    Ответ написан
    Комментировать
  • Как в разных стейтах добавить класс к тегу body?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    https://gist.github.com/fesor/226fce4a4aee5fb30454 - например так.

    Либо в директиве подписываться на $stateChangeSuccess и подменять классы. Был у меня такой примерчик где-то но потерялся...
    Ответ написан
    4 комментария
  • Что сочитать с ReactJS чтобы собрать из него аналог AngularJS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Когда узнал что ReactJS, это не аналог angularjs не очень-то и расстроился.

    Вам бессовестно соврали, там различия конечно есть, особенно в части отслеживания изменений и т.д. но они не настолько кординальные. В общем и целом один и тот же подход может быть реализован и там и там.

    нет поддержки ts у текущей версии

    blog.mgechev.com/2015/07/05/using-jsx-react-with-t...
    https://github.com/Asana/typed-react/

    отсутствия свойств уровня класса.

    ну грубо говоря классов в JS как небыло так и нет...

    но нет понимания роутинга.

    Так же как и в angular - https://github.com/strml/react-router-component

    Никаких пробелов. Для ангуляра к слову такая же примерно штука есть, официальная замена всяким там uiRouter-ам.

    С AngularJS я не задумывался вообще не о чем

    Это главная проблема angular, люди не думают что делают....

    p.s. Реакт в отличии от ангуляра это библиотека. Flux - тоже можно назвать библиотекой. Ангуляр (если мы берем 1.x ветку) - монолитный фреймворк. Вот и вся разница. С реактом вы берете только то что вам нужно.
    Ответ написан