2017-05-06 1 views
3

Wenn ich meine eigene benutzerdefinierte Komponente wie folgt schreiben:Wie schreibe ich benutzerdefinierte Komponenten in Ionic 2/3 ohne vorbereitete CSS zu verlieren?

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'deletableItem', 
    template: ` 
    <ion-checkbox item-right></ion-checkbox> 
    ` 
}) 
export class DeletableItem { 
    constructor() {} 
} 

Und es in einigen HTML-Ansicht verwenden:

<ion-content padding> 
    <ion-list> 
    <ion-item *ngFor="let bill of bills" (click)="openEdit(bill)"> 
     <ion-label text-left>{{bill.name}}</ion-label> 
     <deletableItem></deletableItem> 
    </ion-item> 
    </ion-list> 
</ion-content> 

davon Die Suche ist schlimmer, als es nur auf einmal der Komponentensicht in Eltern setzen wie folgt:

All dies, weil eckigen wrap HTML-Code dieser Komponente in HTML-Tag. So verlieren wir Ionenstärken (css). Bitte keine attributive Komponentenzuweisung wie:

<ion-checkbox item-right deletableItem></ion-checkbox> 

Da dies nur ein einfaches Beispiel ist.

Was ist der beste Weg, um benutzerdefinierte Komponenten mit ionischen Komponenten im Inneren zu schreiben, ohne vorbereitete CSS zu verlieren?

+0

Ich habe eine ähnliche [Problem] (http://stackoverflow.com/questions/43917454/ionic-2-ion-content-of-subcomponent-overlapped-by-ion-header), die Sie kommentiert. Um das Problem besser zu verstehen, was ist "vorbereitetes CSS"? Ich konnte nicht viel darüber finden. – barney765

+0

@ barney765 von vorbereitet css Ich meine aus einer Box oder integrierte CSS aus ionischen Rahmen. – DjezzzL

+0

Ich hatte diese verrückte Idee, dass es möglich sein könnte, DeletableItem eine Unterklasse von Checkbox zu machen. Ich denke, dass Sie die Dekoratoren mit dem neuen Selektornamen auch in die neue Klasse kopieren müssen. Sie könnten dann die 'item-right'-Eigenschaft im Konstruktor setzen. Ich weiß, dass es ein schrecklicher Hack ist, aber vielleicht führt es jemanden dazu, eine Lösung zu finden. – barney765

Antwort

1

Sie müssen erkennen, Ionic verwendet SASS und Ziele mehrere Plattformen. Wenn Sie Ihre <deletableItem></deletableItem> erstellen, sollten Sie nachahmen, was das ionische Team mit ion-checkbox gemacht hat und Sie Sass-Dateien erstellen.

Überprüfen Sie den Quellordner here für <ion-checkbox>.

Definieren Sie Ihre eigene SASS für deleteItem.

Darüber hinaus on the Ionic website you can find the various SASS component/platform variables.

Ich gab auch eine detaillierte Erklärung, bezogen auf Ionic CSS classes assignment, die Ihnen auch helfen können.

Sie können auch Chrome inspect verwenden, um Klassenzuweisungen für ion-checkbox im Developer-Tool zu sehen und diese mit der Liste auf der Ionic-Website zu vergleichen.

Verwandte Themen