Janvier 2017 Mise À Jour:
Angulaire 2 équipe ont récemment ajouté un nouveau package NPM flex-mise en page pour la mise en page uniquement. C'est un paquet séparé indépendant angulaire du matériel.
Les instructions complètes sont disponibles dans la page github README.
Installer le module:
npm install @angulaire/flex-mise en page -enregistrer
En application.le module.ts (ou équivalent), vous devez déclarer le module:
import {FlexLayoutModule} from "@angular/flex-layout";
@NgModule({
imports: [
...
FlexLayoutModule
],
...
})
Exemple de balisage:
<div class="flex-container"
fxLayout="row"
fxLayout.xs="column"
fxLayoutAlign="center center"
fxLayoutAlign.xs="start">
<div class="flex-item" fxFlex="20%" fxFlex.xs="40%"> </div>
<div class="flex-item" fxFlex> </div>
<div class="flex-item" fxFlex="25px"> </div>
</div>
Voici une plunker échantillon pris à partir de la flex-mise en page github de la page.
Réponse Originale À Cette Question:
Les docs que vous mentionnez sont pour angular1 matériel. Angular2 matériel encore n'ont pas de directives de mise en page.
Vous pouvez facilement créer de la directive-vous dans une manière simple.
Tout ce que vous devez savoir:
layout="row"
est le même que style="display:flex;flex-direction:row"
layout="column"
=> style="display:flex;flex-direction:column"
Et flex
est égal à style="flex:1"
Que les directives:
@Directive({
selector:'[layout]'
})
export class LayoutDirective{
@Input() layout:string;
@HostBinding('style.display') display = 'flex';
@HostBinding('style.flex-direction')
get direction(){
return (this.layout === 'column') ? 'column':'row';
}
}
Le flex de la directive, l'utiliser comme: <div flex>
ou <div flex="10">
n'importe quel nombre de 0 à 100%. Aussi, juste pour le fun, j'ai ajouté de la réduction et augmentation des entrées
@Directive({
selector:'[flex]'
})
export class FlexDirective{
@Input() shrink:number = 1;
@Input() grow:number = 1;
@Input() flex:string;
@HostBinding('style.flex')
get style(){
return `${this.grow} ${this.shrink} ${this.flex === '' ? '0':this.flex}%`;
}
}
Pour les utiliser partout sans les ajouter à chaque composant:
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent,FlexDirective ,LayoutDirective ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
Voici un exemple dans plunk