IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

AngularJS Discussion :

Filtrer un élément dans un tableau.


Sujet :

AngularJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 9
    Par défaut Filtrer un élément dans un tableau.
    Salut a tous !

    Je suis débutant sur Angular, et je souhaiterai me former un peu a cette techno.

    voici mon code ;

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <section>
        <page-title-directive title-str="{{ 'SCREEN.EXTRA-CATEGORY-LIST.TITLE' | translate }}"></page-title-directive>
        <page-menu-directive can-create="true" create-ui-sref="extracategory({id: 'new'})" can-remove="false" ></page-menu-directive>
    </section>
     
    <section>
        <page-search-directive search-placeholder="{{ 'SCREEN.EXTRA-CATEGORY-LIST.SEARCH' | translate }}" search-model="query.search" search-query="query" search-fct="getExtraCategories"></page-search-directive>
    </section>
     
    <md-table-container>
        <table md-table>
            <thead md-head>
            <tr md-row>
                <th md-column>{{ 'DATAS.LABELS.EXTRA-CATEGORY.ID' | translate }}</th>
                <th md-column>{{ 'DATAS.LABELS.EXTRA-CATEGORY.NAME' | translate }}</th>
              <th md-column>{{ 'DATAS.LABELS.EXTRA-CATEGORY.NAME' | translate }}</th>
                <th md-column>{{ 'MENU.ACTIONS' | translate }}</th>
            </tr>
            </thead>
            <tbody md-body>
            <tr md-row ng-repeat="extraCategory in extraCategories">
                <td md-cell>{{extraCategory.id}}</td>
                <td md-cell>{{extraCategory.name}}</td>
                <td ng-if="extraCategory.isDefault == true" md-colors="{color:'RED'}" md-cell>{{extraCategory.isDefault}}</td>
                <td md-cell>
                    <md-button class="md-icon-button" ui-sref="extracategory({id: {{extraCategory.id}}})" title="{{ 'ACTION.SHOW.EXTRA-CATEGORY' | translate }}" aria-label="{{ 'ACTION.SHOW.EXTRA-CATEGORY' | translate }}">
                        <md-icon class="material-icons"> exit_to_app </md-icon>
                    </md-button>
                </td>
            </tr>
            </tbody>
        </table>
    </md-table-container>
     
    <md-table-pagination md-limit="query.maxPerPage" md-page="query.page" md-total="{{query.total}}" md-on-paginate="onPaginate" md-page-select></md-table-pagination>

    Voici plus précisément la ligne qui je pense est essentielle :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <td ng-if="extraCategory.isDefault == true" md-colors="{color:'RED'}" md-cell>{{extraCategory.isDefault}}</td>

    Ce que je souhaiterai c'est si "extraCategory.isDefault == true" alors mon élément remonte en tete du tableau.

    Pourriez vous me donner un coup de main ?
    D'avance merci

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    tu as donc une liste d’éléments que la vue affiche les uns après les autres.
    la vue ne peut pas remonter le flux comme ça par magie (en fait, il existe bien une solution mais c'est de la grosse bidouille)

    ce qu'il faut : faire un traitement sur ta liste en amont cad avant l'affichage dans le composant afin de mettre cet élément en tête de liste

  3. #3
    Membre habitué
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 9
    Par défaut
    Salut et merci infiniment pour ta réponse

    Voici ce que j'ai sur mon component, c'est ici qu'a lieu le traitement ? Pourrait tu me donner une petite piste pour démarrer s'il te plait ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    (function() {
        'use strict';
     
        angular
            .module('boProcess')
            .component('extraCategoryListComponent', {
                templateUrl: 'app/components/extra-category-list/extra-category-list.template.html',
                controller: ExtraCategoryListController,
                controllerAs: 'extraCategoryListCtrl'
            });
     
        /** @ngInject */
        function ExtraCategoryListController($log, $scope, extraCategoryService, commonService) {
     
            $scope.query = {
                total: 0,
                page: 1,
                maxPerPage: 10,
                search: '',
                bookmark: 1
            };
     
            /**
             * @param page current selected page
             * @param limit number of items per page
             */
            $scope.onPaginate = function (page, limit) {
                $scope.query.page = page;
                $scope.query.maxPerPage = limit;
                $scope.getExtraCategories();
            };
     
            /**
             * List Extra Categories
             * @param page page number
             * @param limit number of items requested
             * @search search term
             */
            $scope.getExtraCategories = function () {
                // call API
              extraCategoryService.query({page: $scope.query.page, maxPerPage: $scope.query.maxPerPage, search: $scope.query.search}).$promise
                    .then(function(response) {
                        // update pagination
                        $scope.query.total = response.info.totalResult;
                        $scope.query.page = response.info.pagination.currentPage;
                        $scope.query.maxPerPage = response.info.pagination.maxPerPage;
                        // update data
                        $scope.extraCategories = response.data;
                    })
                    .catch(function(response) {
                        $log.debug("Error append with status code " + response.status + ".");
     
                        $scope.query.total = 0;
                        $scope.query.page = 1;
                        $scope.query.maxPerPage = 0;
                        $scope.query.search = '';
     
                        commonService.showToast('SCREEN.EXTRA-CATEGORY-LIST.TOAST.QUERY-ERROR');
                    })
                ;
            };
     
        }
     
    })();

  4. #4
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                        $scope.extraCategories = response.data;
    c'est bien là que extraCategories est rempli avec les elements.

    donc c'est suite à ça, que tu vas faire ton traitement sur $scope.extraCategories pour réorganiser les éléments comme tu veux.


    pour voir le contenu dans la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    console.log( JSON.stringify( $scope.extraCategories ) );

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/07/2014, 10h15
  2. [Tableaux] ajout d'élément dans un tableau
    Par maximenet dans le forum Langage
    Réponses: 3
    Dernier message: 28/02/2006, 20h24
  3. perte d'éléments dans un tableau dans $_SESSION
    Par jibouze dans le forum Langage
    Réponses: 10
    Dernier message: 15/11/2005, 17h01
  4. Compter le nombre d'élément dans un tableau
    Par cryptorchild dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2005, 13h01
  5. [HTML/CSS]désigner un élément dans un tableau de l'extérieur
    Par FrankOVD dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 28/06/2005, 21h55

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