Ответы пользователя по тегу Angular
  • Angular + Laravel. Как хранить файлы?

    0X12eb
    @0X12eb
    Версия Angular не указана, даю пример на Laravel 5 + Angular 2 - GitHub Example
    Ответ написан
    Комментировать
  • Как разместить два независимых друг от друга приложения на Angular4?

    0X12eb
    @0X12eb
    Не вижу смысла добавлять несколько приложений на одну страницу, разве что, для эксперимента.
    Пример с GitHub
    Ответ написан
    Комментировать
  • AngularJS. Как удалить все теги из текстового поля на div с contenteditable?

    0X12eb
    @0X12eb
    1. Кастомная директива-аттрибут для кнопки, которая найдет по element.parent интересующий div, и с помощью jqLite произведете всё что угодно с найденным контейнером.
    2. Если случай уникальный, то всё вышеописанное навешиваем на обычный ng-click для кнопки.
    Ответ написан
    Комментировать
  • Как разрешить такую задачу RxJs?

    0X12eb
    @0X12eb
    .finally( () => this.handleComplete )
    Ответ написан
    Комментировать
  • Как работать с api на angularJS?

    0X12eb
    @0X12eb
    1. Для управления конвейером запросов используйте middleware
    2. Откажитесь от использования $rootScope, используйте ванильный localStorage для хранения переменной
    Ответ написан
    Комментировать
  • Как автоматизировать "копипасту" во front-end Angular 4?

    0X12eb
    @0X12eb
    Вы почти ответили сами на свой вопрос.
    Реализуйте абстрактные компоненты, будь то формы или таблицы с настраиваемым функционалом (необходимые параметры передавайте в компонент инпутом, колбеки возвращайте оутпутом)
    Если требуются уникальные случаи абстрактных компонентов - наследуйтесь от ранее созданных и уже реализуйте уникальную часть для них.
    В итоге у Вас получится один абстрактный компонент. скажем, для таблиц где Вы прогоните все параметры, пришедшие из родительского компонента и отрендерите его, постепенно будете дописывать общие компоненты по мере необходимости.
    В конце концов будут настраиваемые компоненты модалок, нотификаторов, аплоадеров, таблиц, форм и т.д. Которые заинкапсулируют в себе весь необходимый функционал и принимающие лишь настройки для тех или иных случаев реализаций.
    Ответ написан
    Комментировать
  • AngularJS для сайта и для мобильного приложения - это одно и то же?

    0X12eb
    @0X12eb
    Нативное мобильное приложение - это обязательное требование?
    Если да - IONIC облегчит жизнь, если веб-приложение на одном из последних frontend - фреймворков (таких, как Angular).
    Если же нативное мобильное приложение не обязательно - смотрите в сторону PWA - пишем один раз на том же ангуляре, и получаем приложение в вебе + "приложения" под все платформы (+ плюшки типа оффлайн доступа к приложению)

    В любом случае всё будет зависеть от бюджета и опыта разработчиков.
    Ответ написан
    Комментировать
  • Как возвращать true с операциями сравнения в Angular 1.2.14?

    0X12eb
    @0X12eb
    Хз что возвращает getCell и зачем функции передавать вторым параметром строку.

    <table>
      <tr ng-repeat="x in vm.data" ng-class="{danger: vm.diff_range_start_time >= 10}">
        <td>{{ x.Name }}</td>
        <td>{{ x.Country }}</td>
      </tr>
    </table>
    Ответ написан
    Комментировать
  • Как добраться точечным способом до свойства в filter?

    0X12eb
    @0X12eb
    Есть три решения:
    1 вариант: Внутри выражения фильтра итератор уже проходит по свойствам твоих обьектов массива, поэтому такое должно работать:
    <div ng-repeat="article in articles.values | filter:{title:paragraph}"></div>

    2 вариант: Пишешь свой кастомный фильтр.
    3 вариант: Пишешь filter expression:
    template
    <div ng-repeat="article in articles.values | filter:filterExpression"></div>

    js
    sc.filterExpression = article => article.title === paragraph;

    В данном случае, конечно, первый вариант лучше остальных.
    Ответ написан
    Комментировать
  • Как в Angular2 навесить события и обращаться к атрибутам для html пришедшего из api?

    0X12eb
    @0X12eb
    По средствам чего вы планируете обрабатывать эти самые клики и получать значения атрибутов?
    Если, например, будете использовать jQuery, то подойдет такой вариант:
    import { Pipe, PipeTransform } from '@angular/core';
    import { DomSanitizer } from '@angular/platform-browser'
    
    @Pipe({ name: 'safeHtml' })
    export class SafeHtmlPipe implements PipeTransform {
        constructor(private sanitized: DomSanitizer) { }
        transform(value: string) {
            return this.sanitized.bypassSecurityTrustHtml(value);
        }
    }

    Затем рендерим контент который пришел из RestAPI и работаем со всеми пришедшими тегами и атрибутами:

    <div [innerHTML]="data.content | safeHtml"></div>
    Ответ написан
    Комментировать
  • Как правильно обработать массив объектов для md-table в общем компоненте?

    0X12eb
    @0X12eb
    Вам поможет определение своего кастомного DataSource, наследуемого от типизированного из '@angular/cdk'
    В дальнейшем посоветовал бы сделать его один раз генерик с общими параметрами для Вас (будь то сортировка, фильтрация или другими постпроцессорами)

    export class CustomDataSource extends DataSource<T> {
    
      constructor(
          private _customService: CustomService, 
          private _paginator: MdPaginator) { }
    
      connect(): Observable<T[]> {
        const displayDataChanges = [
          this._customService.getAllObjects(),
          this._paginator.page
        ];
    
        return Observable.merge(...displayDataChanges).map((data, page) => {
          const clonedData = data.slice();
    
          const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
          return data.splice(startIndex, this._paginator.pageSize);
        })
      }
    
      disconnect() {}
    }
    Ответ написан
    8 комментариев
  • Как исправить ошибку Error: [$rootScope:infdig] $rootScope/infdig?p0=10 в angular?

    0X12eb
    @0X12eb
    У вас рекурсивное ограничение самого angular, по-умолчанию TTL == 10, есть 2 решения данной проблемы:
    1 вариант: Если известна глубина рекурсии - необходимо установить TTL в точное значение.
    2 вариант: Если глубина неизвестна, задать такой TTL, который по вашему мнению вы не сможете превысить.
    В обоих случаях TTL устанавливается примерно так:
    angular.module('app', [], $rootScopeProvider => {
      $rootScopeProvider.digestTtl(15);
    });
    Ответ написан
    2 комментария
  • Простая загрузка данных в state из json?

    0X12eb
    @0X12eb
    1 вариант:
    myApp.config(function ($stateProvider, $urlRouterProvider) {
        $urlRouterProvider.otherwise('/detail');
        $stateProvider
            .state('root', {
                url: '',
                resolve: {
                    promiseDatas: function ($state, $http) {
                        return $http.get("params.json");
                    }
                },
                controller: function ($state, promiseDatas) {
                    var vm = this;
                    vm.datas = promiseDatas.data;
                    $state.current.data.datas = promiseDatas.data;
                },
                controllerAs: 'root'
                data: {
                    datas: {}
                }
            })
            .state('detail', {
                parent: 'root',
                url: '/detail/:id',
                templateUrl: 'pages/detail.html',
                resolve: {
                    promiseData: function ($state, $stateParams) {
                        return _.findWhere($state.current.data.datas, { id: $stateParams.id })
                    }
                },
                controller: function (promiseData) {
                    var vm = this;
                    vm.data = promiseData;
                },
                controllerAs: 'detail'
            })
    })

    2 вариант: Использовать $state.go и передавать { item } напрямую потомку (не придется трогать всю коллекцию и фильтровать ее на наличие интересующего объекта).
    3 вариант: Использовать родительский $scope, но от скоупа лучше воздержаться.
    Ответ написан
    Комментировать
  • Как правиль строить сложные Url, хранить и передавать их состояние?

    0X12eb
    @0X12eb
    Набросал примерный вариант реализации: Plnkr
    Для отслеживания смены состояний и вытаскивания параметров из состояний потомков, можно использовать такой вариант:
    controller: function($state, $scope, $rootScope) {
            $rootScope.$on("$stateChangeStart", function() {
              $scope.stateParams = $state.params;
            });
          }
    Ответ написан