user1916077
user1916077

Reputation: 451

Angular Flex Layout - Not working

I tried to use 2.0.0-beta.9 in my app, a simple test doesn't work

<div fxLayout="row">
    <div>1. One</div> <div>2. Two</div> <div>3. Three</div> <div>4. Four</div>
</div>

displays columns instead of rows

I think I am importing the library properly

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

import {FlexLayoutModule} from "@angular/flex-layout";

import {TestApp} from "./test-app";

@NgModule({
  imports: [ 
    BrowserModule,
    FlexLayoutModule
  ],
  declarations: [ TestApp ],
  bootstrap: [ TestApp ]
})
export class TestAppModule {

} 

Upvotes: 21

Views: 36337

Answers (3)

dvanrensburg
dvanrensburg

Reputation: 1451

I ran into this issue too and the cause was me using multiple modules and I forgot to import the FlexLayoutModule in my "PagesModule" modules.

It would work on the main page because it was imported at the top level (AppModule) and not on the child modules.

Importing it in the "PagesModule" and restarting the development server fixed it for me.

Upvotes: 12

Simon_Weaver
Simon_Weaver

Reputation: 146218

This is more of a generic problem, but catches me once in a while:

Make sure your project is actually compiling!

If you have an error and the project doesn't compile, then HTML changes won't be shown - which includes directives being added. So if you add a directive to existing code and don't see the change make sure your compile completes.

Don't get muddled up with the names

-Use fxLayout and not fxFlexLayout

-Use fxLayoutAlign and not fxFlexLayoutAlign

Upvotes: 2

Zaw Than oo
Zaw Than oo

Reputation: 9935

I also got like that problems when I install the lasted flex-layout module. The problems is directive name changes. In website, all of the directive are like layout, layout-xs, flex etc...

According to my solution, directive name are changed to fx + PascalCase.

Example

layout -> fxLayout
flex -> fxFlex
flex-order -> fxFlexOrder
flex-order-gt-md -> fxFlexOrder.gt-md

If you check Layout and Container, you will see as below image.

enter image description here

Change above source code to as the following, it is OK for me.

<div fxLayout="row">
    <div fxFlex>First item in row</div>
    <div fxFlex>Second item in row</div>
</div>
<div fxLayout="column">
    <div fxFlex>First item in column</div>
    <div fxFlex>Second item in column</div>
</div>

Upvotes: 13

Related Questions