3 votes

Rafraîchir les données dans le contrôleur lorsque la portée est modifiée en AngularJS

Je suis assez nouveau avec Angular et j'ai lu beaucoup de fils de discussion ici et j'ai cherché ce sujet sur Google mais je n'arrive pas à obtenir une réponse claire. Ce que j'essaie vraiment d'accomplir est. supposons que j'ai un contrôleur A, c'est une source réelle de données. Je les ai transmises à une directive en les liant à un HTML. A partir de cette directive, je récupère en fait la source dans un autre contrôleur. J'ai donc besoin de trouver le moyen de changer les données du contrôleur lorsque les données du contrôleur A sont modifiées.

Contrôleur A

angular.module('page.leadAndOpportunity.ctrl', []).controller('LeadAndOpportunityController', ['$scope', '$rootScope', '$timeout', function ($scope, $rootScope, $timeout, leadAndOpportunityService) {

    $scope.selectDataSource = function (condition) {
        var dataSource = [];
        var dataSource = $scope.leadsDataSource.filter(function (item) {
            return item.typeName === condition;
        });
        $scope.leadsDataSource = [];
        $scope.leadsDataSource = dataSource;
        console.log($scope.leadsDataSource);
    }

}]);

HTML

<ng-senab-grid datasource="{{ leadsDataSource }}" defaultdata="{{defaultColumns}}" skipdata="{{ skipColumns }}" enablepersonalisation="true"></ng-senab-grid>

Directive

angular.module('page.gridView.drct', []).directive("ngSenabGrid", ["$rootScope", function ($rootScope) {
        return {
            restrict: "E",
            templateUrl: "pages/gridView/page.gridView.tpl.html",
            scope: {
                enablePersonalisation: "@enablepersonalisation",
                datasource: "@datasource",
                defaultdata: "@defaultdata",
                skipdata: "@skipdata"
            },
        }
    }]
);

Contrôleur B

 var _datasource = JSON.parse($scope.datasource);
//rest the data follows

Alors quand $scope.leadsDataSource obtient des changements sur Contrôleur A alors le

var _datasource = JSON.parse($scope.datasource);

devrait également être modifié

Je ne sais pas si c'est possible ou non. Mais j'ai besoin de modifier les données Merci d'avance

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X