Как настроить точки останова Angular Flex Layout с помощью Angular 8 - PullRequest
2 голосов
/ 21 октября 2019

Кто-нибудь знает, как настроить точки останова Flex Layout, используя Angular 8 и Angular Flex Layout. Я пытаюсь использовать их в шаблоне так:

    <div fxFlex="100%" fxFlex.md="20%" fxFlex.gt-md="50%">
        My Content
    </div>

Это не работает в настоящее время. Некоторые из моих настроек:

  • Массив точек останова в файле constants.ts:
        import { BREAKPOINTS } from '@angular/flex-layout';

        export const OVERRIDE_BREAKPOINTS = [
            {
                alias: 'xs',
                mediaQuery: 'screen and (min-width: 1px) and (max-width: 599px)',
                overlapping: false
            },
            ...
        ]

         export const BreakPointsProvider = {
             provide: BREAKPOINTS,
             useValue: OVERRIDE_BREAKPOINTS,
             multi: true
         };
  • Настройки в app.module.ts:
        imports: [
            FlexLayoutModule.withConfig({}, OVERRIDE_BREAKPOINTS),
            ...
        ]


        providers: [
            BreakPointsProvider
            ...
        ]

Я не знаю, что еще мне добавить, чтобы это заработало.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

В итоге я использовал предыдущую версию Angular с последней версией Angular Flex Layout, это работает, как и ожидалось:

package.json:

{
  "name": "angular-app",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^8.0.0",
    "@angular/cdk": "8.0.2",
    "@angular/common": "8.0.0",
    "@angular/compiler": "8.0.0",
    "@angular/core": "8.0.0",
    "@angular/flex-layout": "8.0.0-beta.26",
    "@angular/forms": "8.0.0",
    "@angular/material": "^8.0.2",
    "@angular/platform-browser-dynamic": "8.0.0",
    "@angular/platform-browser": "8.0.0",
    "@angular/router": "8.0.0",
    "@auth0/angular-jwt": "^3.0.0",
    "@types/jasmine": "2.8.16",
    "@types/jasminewd2": "2.0.8",
    "@types/node": "8.9.5",
    "core-js": "2.6.9",
    "hammerjs": "^2.0.8",
    "rxjs": "6.5.2",
    "zone.js": "0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.10.0",
    "@angular/cli": "~7.0.2",
    "@angular/compiler-cli": "~7.0.0",
    "@angular/language-service": "~7.0.0",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "~4.5.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~3.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "karma-spec-reporter": "0.0.32",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "~3.1.1"
  }
}

app.module. ts:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { ReactiveFormsModule, FormsModule } from '@angular/forms';

import { FlexLayoutModule } from '@angular/flex-layout';
import { AuthInterceptor } from './auth/auth-interceptor';

@NgModule({
  declarations: [ ],
  imports: [
    AppMaterialModule,
    AppRoutingModule,
    BrowserAnimationsModule,
    BrowserModule,
    FlexLayoutModule,
    FormsModule,
    HttpClientModule,
    ReactiveFormsModule,
    SnackBarModule
  ],
  providers: [
    { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }
  ],
  bootstrap: [AppComponent],
  entryComponents: [ ]
})
export class AppModule { }

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 21 октября 2019

вам нужно обновить ваш HTML следующим образом:

<div class="container"
     fxLayout
     fxLayout.xs="column"
     fxLayoutAlign="center"
     fxLayoutGap="10px"
     fxLayoutGap.xs="0">
  <div class="item item-1" fxFlex="15%">Item 1</div>
</div>

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

...