Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Angular Discussion :

Mettre un attribut public au lieu de privé


Sujet :

Angular

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    août 2008
    Messages
    1 098
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2008
    Messages : 1 098
    Points : 518
    Points
    518
    Par défaut Mettre un attribut public au lieu de privé
    Bonjour ,
    je récupère dans le composant html si le visiteur est admin j'ai donc ceci comme code:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        </button>
        <button  *ngIf="this.auth.isAdmin()" mat-button (click)="openDialog(courantCatego)">X </button>

    pour ne pas trop m'embêter j'ai mis auth en public au lieu de privé:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        public auth:AuthenticationService,

    avant j'ai mis en privé mais j'ai une erreur de compilation en prod

    ng build --prod

    ERROR in src/app/matiere/matiere.component.html(13,14): Property 'auth' is private and only accessible within class 'MatiereComponent'.
    voici comment je défini s'il est admin
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        isAdmin() {
     
            if (localStorage.getItem('token') != null) {//si pas de jeton pas de role
                this.getRolesToken();
                for (let r of this.roles) {
                    if (r.authority == 'ADMIN') return true;
                }
            } else {
                return false;
            }
        }

    penser vous qu'il set très gênant que je met cette attribut en public pour passer l'étape de la compilation ??

    merci de vos suggestions

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    janvier 2019
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2019
    Messages : 47
    Points : 66
    Points
    66
    Par défaut
    oui quand meme.


    tu peux le mettre en privé et réer une méthode qui renvoi la valeur de auth....

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    août 2008
    Messages
    1 098
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2008
    Messages : 1 098
    Points : 518
    Points
    518
    Par défaut
    merci de cette réponse,

    quand on fait du php par exemple, on sait qu'il faut mettre en privé les attributs afin qu'une autre classe ne puise pas modifier cette valeur ,
    mais ici comme c'est de l'angular et que si on est dans un autre templates , il ne peut pas avoir accès à auth sans qu'on importer le service.

    D'ailleur il me serais plus facile si c'était le cas car cette attribut me sert toujours pour savoir si c'est un admin ou pas, je l'aurais mis volontier en plublic
    pour qu'il puisse être diffuser sur l'ensemble du projet.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/02/2007, 12h39
  2. Travailller ds le public ou ds le privé ?
    Par la_toupie dans le forum Emploi
    Réponses: 10
    Dernier message: 26/01/2007, 19h01
  3. Attribut public, quel intérêt?
    Par FCDB dans le forum Langage
    Réponses: 6
    Dernier message: 18/09/2005, 01h44
  4. Réponses: 5
    Dernier message: 23/07/2005, 02h49
  5. Réponses: 2
    Dernier message: 27/03/2005, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo