Ответы пользователя по тегу Angular
  • Можно ли на этапе сборки проекта выгрузить файлы по ссылкам из CDN в локальную папку?

    @PavelPikat
    Скачать все файлы, добавить в проект, и приписать их как зависимости в angular.json, чтобы при сборке проекта они включались в бандл
    Ответ написан
    Комментировать
  • Angular: как переключить язык?

    @PavelPikat
    Никак. i18n в настоящий момент не поддерживает смену языка на лету. Ангуляр компилирует отдельные бандлы для каждого языка и все приложение будет перезагружено при смене языка.

    Для смены языка на лету используйте ngx-translate или ждите Ivy - в новом движке обещали реализовать
    Ответ написан
    Комментировать
  • Как задать формулу для высоты блока angular?

    @PavelPikat
    В шаблоне: <div [style.height.px]="blockHeight"></div>
    где blockHeight - переменная компонента

    Можно конечно и целую функцию в шаблоне использовать, типо [style.height.px]="calculateHeight()", но так делать не стоит т.к. функция будет вызываться каждый раз при change detection. Лучше тогда сделать pipe который значение будет вычислять от какой то изначальной велечины, либо directive сделать, которая будет задавать высоту для блоков.
    Ответ написан
  • Angular - Не работают стандартные значения переменой?

    @PavelPikat
    HttpClient не создает классы, вам нужно вызывать конструктор вручную, например через map

    this.http.get('api/namesurname')
    .pipe(
        map((resp) => resp.data.map(item => new NameSurName(item)),
    }
    .subscribe((resp) => {
        this.nameSurName = resp.data // {name: 'Вася'} 
      })
    
    export class NameSurName {
      name: string;
      surname: string = 'Иванов'
    
    constructor(props: Partial<NameSurName >) {
       Object.assign(this, props);
    }
    Ответ написан
    4 комментария
  • Роутинг в angular 7?

    @PavelPikat
    <a [routerLink]="['/edit/main/116289357']">Text</a>


    Мануалы в помощь
    Ответ написан
  • Что делает атрибут у компонента?

    @PavelPikat
    Это @Input который передает список объектов для отображения, только написано неправильно - нужно обернуть в квадратные скобки.
    fieldsChange - это @Output, соответственно.
    Ответ написан
  • Angular (8) почему не обновляеться шаблон?

    @PavelPikat
    У вас случайно в компоненте не стоит changeDetection: ChangeDetectionStrategy.OnPush?
    Ангуляр детектит изменения в инпутах по референсу при OnPush. Когда вы создаете новый список с
    this.sensors = [{}, {}], то ссылаетесь но новый список, а при измнении значения через this.sensors.push ссылка на объект не меняется.

    Поэтому либо используйте spread operator
    this.sensors = [...this.sesnsors, ...response.sensors]

    Либо вручную говорите Ангуляру провести проверку измнение через this.changeDetector.markForCheck()
    (changeDetector из конструктора, private changeDetector: ChangeDetectorRef)
    Ответ написан
  • Vue.js, React или Angular? Express на Electron JS будет работать?

    @PavelPikat
    На Electron будут работать все фрейморки.
    Но мне кажется вам сначала нужно разобраться с чем, что и куда. Express - это веб сервер который крутится на удаленной машине и обрабатывает запросы пользователей по протоколу (например HTTP).
    Vue/React/Angular - в общем случае, это клиентские приложение которые работают локально в браузере пользователя.
    Electron - это обертка Хромиума, т.е. это десктопное приложение в основе которого лежит браузер.
    Соответвенно запускать веб-сервер внутри Electron это полнейшая глупость и не имеет никакого смысла.

    Имеет смысл резделить приложение на UI с Vue/React/Angular, которые могут работать на десктопе в Electron-приложении, и веб-сервер на Express, который должен работать на удаленной машине. Соответвенно клиентское Electron приложение может делать запросы к серверу и получать/отсылать данные и отображать их в своем UI.
    Ответ написан
    Комментировать
  • Запуск Angular приложения на сервере в фоне?

    @PavelPikat
    Подозреваю что под "работающим Ангуляром" вы имеете ввиду development server Webpack'a который у вас запущен в консоли через npm-скрипт. Соответственно, когда вы закрываете консоль, dev-server останавливается.

    Так вот, вы совершенно неверно поняли принцип работы node, Webpack и Ангуляра в целом, если считаете что все это так и должно работать в проде.

    Ангуляр это не процесс и не программа, которую нужно запускать. Весь Ангуляр код компилируется в JavaScript который загружается вместе с HTML вебсайта который хостится на сервере.

    Советую начать вам с документации по Ангуляру чтобы понять что это такое и как это работает - https://angular.io/docs
    Ответ написан
    Комментировать
  • Как решить Error: Mode must be "sandbox" or "live"?

    @PavelPikat
    Ошибка в PayPal SDK который используется где-то в вашем коде. По крайней мере именно этот SDK жалуется на неправильный конфиг. Параметр "mode" в конфиге должен иметь одно из двух значений, либо "live", либо "sandbox". В вашем случае там видимо ничего нет.
    Ответ написан
    Комментировать
  • Почему в Angular + electron нет автообновления страницы?

    @PavelPikat
    Если вы все сделали по иструкции и в package.json у вас только скрип "build", то никакого обновления ждать и не стоит. Обновление будет если ваш бандлер (Webpack, например) начнет "смотреть" за изменениями, webpack --watch

    Или пропробуйте так (скорировал из своего проекта, может нужно будет вам установить webpack-dev-server и поменять что-то):
    "scripts": {
        "ng": "ng",
        "lint": "ng lint",
        "start": "npm-run-all --parallel webpack:watch electron:serve",
        "webpack:watch": "webpack --watch",
        "start:web": "webpack-dev-server --content-base . --port 4200 --inline",
        "build:electron:main": "tsc main.ts --outDir dist && cpx package.json dist && cpx resources/app/**/* dist && cd dist && npm install --prod && cd ..",
        "build": "webpack --display-error-details && npm run build:electron:main",
        "build:prod": "cross-env NODE_ENV=production npm run build",
        "electron:serve": "npm run build:electron:main && electron ./dist --serve",
        "electron:dev": "npm run build && electron ./dist"
      },


    npm run start все запустит и начнет обновлять страницы
    Ответ написан
    Комментировать
  • Кто то может подробно прокомментировать данный TypeScript код?

    @PavelPikat
    Выглядит как дочерний компонент какого-то другого компонента, т.е. используется внутри чего-то. Я бы сказал что задача этого компонента - отрендерить список задач из передаваемой переменной currentJobs (у которой сверху декоратор @Input() - это входные данные). Рендерится все в шаблоне show.component.html.

    @HostListener('change', ['$event.target']) - это eventListener по всему компоненту, т.е. клик в любом месте внутри компонента вызовет эту функцию. Эта функия пробегается по всем элементам в checkedJobs (список чекбоксов в шаблоне) и проверяет, отмечены ли они или нет. Если да - добавляет чекбокс в отдельный Set (это типо Array но с униками) currentCheckedInputs, а если не отмечен - удаляет. После этого пробегается уже по currentCheckedInputs, собирает айди HTML элементов и передает родительскому компоненту через this.onDelete.emit. Родительский компонент скорее всего слушает это событие и что-то дальше делает с полученной инфой.

    Ротительский компонент скорее всего содержит такую конструкцию у себя в шаблоне:
    <app-show-j [currentJobs]="jobs" (onDelete)="handleDeleted($event)"></app-show-j>
    Ответ написан
    1 комментарий