_comme un filtre: au changement d'une valeur, on rappelle une API avec un nouveau paramètre apiParam // C:\DEV\depot\Emed-front\src\app\current\views\donneesante\benef\cremod\benefdonneesantecremod.ctl.js

function getDataAndMeta(fct) {
    /* api que l'on va rappeler lors du onChange */
    fct.getParamDonneeSanteList = {
        api: BenefDonneeSanteService,
        getApi: BenefDonneeSanteService.getListFor,
        apiParam: 0
    };

    [...]

    // permet de savoir s'il y a des données pour le type de données sélectionné
    fct.setDonneeList = function (typevalue) {
        fct.getDonnees = function (filters, sort, limit, offset, champs, meta) {
            return BenefDonneeSanteService.getListFor(filters, sort, limit, offset, champs, meta, typevalue);
        };
        // RG_BENEF_DONNEE_SANTE_005
        fct.getDonnees().then(function (result) {
            if (result && (result.status === 200)) {
                if (angular.isArray(result.data.data) && (result.data.data.length > 0)) {
                    fct.hasDonneeList = true;
                } else {
                    fct.hasDonneeList = false;
                }
            } else {
                fct.hasDonneeList = false;
            }
        });
    };

    if (!fct.creation) { // en update
        fct.afterLoadDataAndMeta = function(result) {
            if (result && (result.status === 200)) {
                fct.getParamDonneeSanteList.apiParam = result.data.data.refTypeDonneeSante_BenefDonneeSanteR;
                if (result.data.data.refParamDonneeSante_BenefDonneeSanteR) {
                    fct.hasDonneeList = true;
                } else {
                    if (result.data.data.refTypeDonneeSante_BenefDonneeSanteR === 4) {
                        fct.hasDonneeList = false;
                    } else {
                        fct.hasDonneeList = true;
                    }
                }
            }
        };
    } else { // création
        // champ donnée en lecture seule avant toute modification
        fct.onRefTypeChange = function (value) {
            // si on change de type de donnée, on réinitialise la donnée à sélectionner
            if ((fct.data.benefdonneesantecremod.refParamDonneeSante_BenefDonneeSanteR !== undefined) && (fct.data.benefdonneesantecremod.refParamDonneeSante_BenefDonneeSanteR !== null)) {
                fct.data.benefdonneesantecremod.refParamDonneeSante_BenefDonneeSanteR = null;
            }
            /* affectation de la nouvelle valeur */
            fct.getParamDonneeSanteList.apiParam = value;
            /* rappel de l'api si cas particuliers à appliquer(voir fonction plus haut) car l'affectation d'apiParam suffit */
            fct.setDonneeList(value);
            /* refresh du champ - vérifier si nécessaire selon le type de champ */
            fct.askChildRefresh('donnee');
        };
    }
}

autre exemple filtre

38_FILTRES / AFFICHAGE / ACTION

_filtres // C:\DEV\depot\Emed-front\src\app\current\views\donneesante\benef\benefdonneesantelist.ctl.js

function initList(fct) {
    [...]

    fct.filtre = {
        type: null
    };

    fct.listParams.benefdonneesantelist = {
        data: {liste: []},
        meta: {liste: undefined},
        api: ParamBenefDonneeSanteService,
        getApi: ParamBenefDonneeSanteService.getListFor,
        apiParam: $stateParams.idBeneficiaire,
        ordre: [],
        displayFields: [],
        limit: 30,
        searchFields: [],
        filtres: [],
        canLoad: true,
        actions: undefined
    };

    fct.idTypeFiltreChoisi = null;

    // RG_BENEF_DONNEE_SANTE_001
    fct.onFiltreType = function (value) {
        fct.filtre.type = value;
        updateFiltre(fct);
    };

    // initialisation du commentaire
    ParamBenefSanteService.getCommentUpdate($stateParams.idBeneficiaire).then(function (result) {
        if (result && (result.status === 200)) {
            fct.data.benefsante = result.data.data;
            fct.meta.benefsante = result.data.meta;
        }
    });
}

function updateFiltre(fct) {
    fct.listParams.benefdonneesantelist.filtres = [];

    if (fct.filtre.type !== undefined && fct.filtre.type !== null) {
        fct.listParams.benefdonneesantelist.filtres.push({
            nomChampR: 'refTypeDonneeSante_BenefDonneeSanteR',
            operateur: "EQUAL",
            valeur: fct.filtre.type
        });
    }

    fct.listParams.benefdonneesantelist.refresh(true);
}