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

    Jeer
    @Jeer
    уверенный пользователь
    Можешь на событие keyDown повесить функцию, внутри которой просто результат к цифрам кастишь или другую нужную тебе логику делаешь. Либо еще посмотри события (input) или что-то про change text
    Ответ написан
    Комментировать
  • Медленный ли современный Angular в маленьком проекте?

    Jeer
    @Jeer
    уверенный пользователь
    SPA приложения отображаются дольше, чем одна обычная страница с сервера. Затем, когда первая страница загружена, навигация по проекту идёт гораздо быстрее и приятнее для пользователя.
    Там процесс идёт следующий, вначале загружается одна пустая страница и файлы js. Затем js строит весь пользовательский интерфейс динамически. С таким подходом поисковые роботы вообще перестали работать. Сейчас вроде как только гугл нормально поддерживает индексацию в динамических страницах, и то, могут быть проблемы.
    Чтобы сделать так, чтобы по ссылке с сервера загружалась готовая страница, используют технологию ssr (server side rendering), там суть в том, что вначале страница динамически строится на сервере с помощью node.js, чтобы по запросу поискового робота загружалась готовая корректная страница. Как вы понимаете, тут можно много геммора хапнуть во-первых, во-вторых, построение страницы на сервере всё равно будет дольше обычного шаблонизатора.
    Если у вас нет динамического содержимого и вам принципиальны поисковые роботы - не используйте spa решения, у вас на голову вырастет сложность проекта, что значит увеличенное время разработки, поиска ошибок, поддержки проекта в дальнейшем.
    Ответ написан
    Комментировать
  • Как протащить изображение через SignalR?

    Jeer
    @Jeer Автор вопроса
    уверенный пользователь
    Кому интересно, тут произошла какая-то магия. Дело в том, что когда из c# отправляется массив байтов он автоматически конвертируется в base64 стрингу. Мне понадобилось некоторое время, чтобы осознать это. Причин такого поведения я не нашёл в интернете, буду рад, если кто подскажет.
    В моём коде я по сути делал двойную конвертацию в base64, это всё не нужно, вот верный код:
    this.connection.on("BroadCastImage", image => {
          this.base64data = this.sanitizer.bypassSecurityTrustUrl('data:image/jpeg;base64,' + image);
        });
    Ответ написан
    1 комментарий
  • Как в Angular достучаться до масива элементов?

    Jeer
    @Jeer
    уверенный пользователь
    Можно заморочиться и диву назначить айдишник, затем получить его внутренний html непосредственно в контроллере, но этот подход в корне неверный.
    У вас есть массив items, через него и осуществляйте управление, добавьте необходимые свойства. А уже через эти свойства влияйте на html. Например, добавляете свойство color и пишете так:
    <a [ngClass]="text .color" href="">{{text .item}}</a>

    Синтаксис могу напутать, но что-то вроде того.
    Ответ написан
    Комментировать
  • Как в Angular правильно реализовать функционал ролей пользователя с разным интерфейсом?

    Jeer
    @Jeer
    уверенный пользователь
    Привет.
    Вопрос, на самом деле, довольно стандартный, удивлён, что никто ничего не отвечает.
    1. Сервис пользователя (говорю только про ангуляр) должен быть глобальным. То есть, после аутентификации с бекенда у вас должна придти полная модель пользователя, включающая список доступных ролей (реализации тут могут быть совершенно различные). Глобальный сервис позволяет получить набор ролей пользователя из любого места программы.
    2. Ограничения на страницу вешаются через RouteGuard. Почитайте подробнее в поисковике. По сути, там обычный класс, в который вы прокидываете зависимость от глобального сервиса пользователя и внутри разбираете, какие роли присутствуют и может ли попасть на текущую страницу
    Включается этот волшебный охранник в роутах, например:
    {
                                path: 'recipient',
                                component: RecipientComponent,
                                canActivate: [LoginRouteGuard],
                                data: {roles: ['Admin'], title: 'Список получателей'}
                            }

    3. Guard запрещает именно переход по какому-то роуту, если нет доступных ролей. Саму же кнопку сделать неактивной, либо невидимой сделать труда не представляет? Так же прокидываем глобальный сервис пользователя, пишем метод проверки на определённую роль (роли), вешаем на visible или disabled
    4. Есть момент с содержимым. Если есть такая возможность, то желательно не намешивать в одном компоненте разные представления, то есть, делать разные компоненты и роуты, например OrdersManagers, OrdersAdmins. Так проще работать. Если нет такой возможности, например, с дашбордом, делаете корневой компонент, в него уже включаете через ngIf или ngSwitchCase все доступные компоненты для разных ролей. Естественно, с проверкой, что требуется отображать
    <div *ngSwitchCase="'WidgetCargoInworkComponent'">
                    <app-widget-cargo-inwork></app-widget-cargo-inwork>
                </div>
                <div *ngSwitchCase="'WidgetInvoicesNotpaidComponent'">
                    <app-widget-invoices-notpaid></app-widget-invoices-notpaid>
                </div>
                <div *ngSwitchCase="'WidgetWaybillsComponent'">
                    <app-widget-waybills></app-widget-waybills>
                </div>
    Ответ написан
    1 комментарий
  • Переход с Angular на React. Тренд или нет?

    Jeer
    @Jeer
    уверенный пользователь
    Да, я тоже натыкался на такую фразу. На вопрос, в чем, собственно, дело, был ответ, что есть админка на ангуляре и есть основной сайт на реакте. И какой-то другой еще тоже заводили на реакте. Ну и "когда-нибудь в ближашем будущем" и админку сменят с ангуляра на реакт, он в конторе лучше прижился. А пока есть задачи и там и там.
    Вообще, конечно же скоро все на блейзере будут писать :) к черту эти js-фреймворки )
    Ответ написан
    Комментировать
  • Как сделать запуск веб приложения на телефоне без оболочки браузера?

    Jeer
    @Jeer
    уверенный пользователь
    Apache cordova, phoneGap
    Ответ написан
    Комментировать
  • Как правильно перейти с AngularJS + .NET на Angular6 + .NET?

    Jeer
    @Jeer
    уверенный пользователь
    AngularJS и Angular концептуально разные фреймворки. Только если создать проект с нуля и в него выдирать куски логики. Но, бОльшую часть проекта придётся переписать заново
    Ответ написан
    Комментировать
  • Как пишутся динамические многопользовательные игры на html5?

    Jeer
    @Jeer Автор вопроса
    уверенный пользователь
    В общем, мне достаточно было просто посмотреть обучающих статей, потыкать примеры, в принципе, разобраться можно, хоть лично у меня с этим возникли сложности.
    Подписавшимся могу скинуть пример с планетами, который я разбирал
    https://developer.mozilla.org/en-US/docs/Web/API/C...

    В целом, технология интересная, но она подходит для игр, которые управляются с клавиатуры. Можно смело перекладывать старые сеговские и дендевские игры. Но меня интересуют именно такие игры, в которых нужно тыкать мышкой, где куча кнопок (на которых при наведении ховеры и тултипы, и легко вешать обработчики). А в этой технологии просчитать куда кликнули мышкой, потом пересчитать координаты, чтобы определить на глазок что за элемент, к которому как-то костыльно прицеплять обработчики... Задачи, скажем так, не тривиальные и решаются бубном и такой-то матерью, что грозит превратить любой проект в болото.
    В общем, посмотрю еще движения в svg, а может быть вообще начну пилить на чистом DHTML.
    Ответ написан
  • Почему npm пакет ищется не в node_modules?

    Jeer
    @Jeer
    уверенный пользователь
    удали файлы, не помню точно, в названиях присутствуют shrinkwrap.json и lock.json. И сделай еще раз Npm install
    Ответ написан
    Комментировать
  • Почему angular работает только на HTTPS?

    Jeer
    @Jeer
    уверенный пользователь
    Скорее всего, ваш сервер настроен так, что принимает только защищенные соединения. Это не связано с ангуляром, можете руками вбить какую-либо ссылку вашего api в браузере с https и без и посмотреть на результат.
    Смотрите настройки сервера
    Ответ написан
    Комментировать
  • Как отслеживать статус загрузки файлов на сервер в angular 5?

    Jeer
    @Jeer
    уверенный пользователь
    https://angular.io/guide/http - вот тут поищите слово tracking

    или гуглите
    angular 5 http progress
    angular 5 http tracking
    angular http interceptor upload tracking
    Ответ написан
    Комментировать
  • В каких случаях стоит делать S.P.A. приложение?

    Jeer
    @Jeer
    уверенный пользователь
    Если вы делаете браузерную (html) игру, то есть, по сути, у вас одна страница у каждого пользователя и куча динамического контента. Эту кашу, в принципе, индексировать не получится, поэтому можно изначально забить на поисковики и делать SPA.
    Примеров тьма - бойцовский клуб и куча аналогов, ботва и т.д., а так же Iframe приложения (и игры) вконтакте, фейсбук, одноклассники, тоже многие делают на html.
    Продвигаются такие игры либо внутренними механизмами соц. сетей, либо рекламой.
    Библиотеку (тематический сайт) делают по всем канонам для поисковиков.
    Ответ написан
    Комментировать