2017-12-20 10 views
0

Ich mache meine Arbeit in Angular JS (1.x). Ich erstelle ein Modal mit ModalService. Jetzt möchte ich einige Filter in meinem Modal verwenden. Wie kann ich das verwenden, wenn man bedenkt, dass es keinen separaten Controller für denselben gibt.Wie filtert man Filter in ModalService in Angular?

Unten ist der Code für ModalService.js

angular.module('appServices').service('ModalService', ['$modal', 
    function ($modal) { 
    this.showModal = function (customModalOptions) { 
     return this.show(customModalOptions); 
    }; 

    this.createModalView = function(templateUrl, scopeFields) { 
     // bind the data prior to creating the modal overlay 
     function MyModalController($scope) { 
     angular.forEach(scopeFields, function(value, key) { 
      $scope[key] = value; 
     }); 
     } 

     MyModalController.$inject = ['$scope']; 

]); 

Antwort

0

Ich bin nicht sicher, was Sie hier zu erreichen versuchen. Aber Filter können in Dienste und Richtlinien eingespritzt werden, wie unten

gezeigt

Dazu injizieren eine Abhängigkeit mit dem Namen <filterName>Filter in Ihren Controller/Service/directive. Z.B. Ein Filter namens number wird mit der Abhängigkeit numberFilter injiziert. Das injizierte Argument ist eine Funktion, die den Wert als erstes Argument und Filterparameter beginnend mit dem zweiten Argument verwendet.

Quelle: Angularjs docs.

0

injizieren Gerade $filter und es Ihre Filternamen

function ($filter, SomeService) { 
    let data = SomeService.getData(); 
    $scope.filteredData = $filter('myFilter')(data); 
} 

passieren, wenn das nicht, verwenden Sie funktioniert $injector

$injector.get('$filter')('myFilter')(data);