2016-11-24 1 views
0

Je définir un composant connexion bouton comme ceci:Comment créer un composant d'élément personnalisé avec ionic2?

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

@Component({ 
    selector: 'login-button', 
    template: 
    `<ion-buttons end> 
     <button ion-button round (click)="openLogin()"> 
     Login 
     <ion-icon name="arrow-up"></ion-icon> 
     </button> 
    </ion-buttons> 
    <ng-content></ng-content> 
    ` 
}) 

export class LoginButton { 

    constructor() { 
    console.log('Hello LoginButton'); 
    } 
} 

enregistrer en tant que fournisseur dans app.module.ts puis l'utiliser dans un fichier html:

<ion-content padding> 
</ion-content> 
<ion-footer> 
    <ion-navbar> 
    <button ion-button icon-only menuToggle> 
     <ion-icon name="menu"></ion-icon> 
    </button> 
    <ion-title> 
     Fragen 
    </ion-title> 

    <login-button></login-button> 
    </ion-navbar> 
</ion-footer> 

Aucun message d'erreur. Le constructeur est appelé, mais le modèle n'est pas rempli dans l'élément. De toute évidence, une étape est manquante. Laquelle?

Répondre

2

Pas besoin de l'enregistrer comme provider, enregistrez-le sous declarations et entryComponents.

Ensuite, le bouton peut être affiché avec le selector: <login-button></login-button> (pas besoin d'importer explicitement)

+0

ensuite sur la console du navigateur je reçois: « Aucun fournisseur pour LoginButton » – Michael

+0

hmm attente que je viens de vérifier mon code, J'ai le 'LoginButton' déclaré à la fois' declarations' et 'entryComponents' dans' NgModule'. Pas de déclaration d'importation sur la page d'utilisation, en utilisant simplement la balise de sélection – Ivaro18

+0

Dernière chose était il. Je l'ai importé dans la page d'utilisation. Rangez-le et cela fonctionne. J'ai également mis LoginButton dans la liste des fournisseurs, qui a fait le messaage "Aucun fournisseur pour LoginButton" s'en aller ;-) – Michael