2015-12-03 191 views
-1

嗨,我真的需要將過濾器集成到我的控制器,但它很難, 我提供我的控制器和我前幾天做的過濾器。 在此先感謝!過濾器控制器

angular.module('tickets').controller('TicketsController', ['$scope', '$filter', '$routeParams', '$interval', '$location', 'Authentication', 'Tickets', 
function($scope, $filter , $routeParams, $interval, $location, Authentication, Tickets){ contenido del controlador}]); 

濾波器如下:

.filter("filtroDate", function($filter) 
{ 
    return function(input) 
{ 
    //replace(/([^\"]*)(\d*)([^\w]*)/, replacer); 
     $scope.diaActual = $filter('date')(new Date(), 'yyyy-MM-dd'); 
     var salida = []; 
     angular.forEach($scope.tickets, function(eachtime){ 


     var creado = $scope.tickets.creado = pais.diaAnt.replace(/^\" (.*)\"/,"$1"); 

     console.log("Creado :",$scope.tickets.creado); 

     var diaTickete = $filter('date')(new Date(creado), 'yyyy-MM-dd'); 

     console.log("diaTickete :", diaTickete); 


     if ($scope.diaActual === diaTickete) { 

      salida.push($scope.tickets) 
      } 
     }) 
     return salida; 
    } 
}); 
+1

看着你的代碼,我認爲你誤解了過濾器的使用。您無法在此訪問$ scope屬性。一個過濾器接收一些輸入,也許還有額外的參數,並返回一個值...看起來你在這裏做了很多$ scope操作,也許你根本不需要過濾器。過濾器的主要思想是使用'pipe'語法在視圖上使用它們。 – sminutoli

+0

您是否閱讀過角度文檔?您可以在angular的網站上找到[關於如何使用和注入過濾器的大量信息](https://docs.angularjs.org/guide/filter#using-filters-in-controllers-services-and-directives)。 – imnotfred

+0

感謝您的幫助,我試圖用控制器中的過濾器來訪問示波器,感謝提示,我在這個世界上是新的:) –

回答

0

要在控制器的過濾器整合是相當直接的,you'll只需要注入$filter服務,並得到一個給定的過濾器的實例...

app.controller('MyCtrl', function($filter){ 
    var myFilter = $filter('filtroDate'); //this returns the filter function! 
    var result = myFilter('some-input'); 
}) 
+0

非常感謝您的幫助,最後我解決了我的問題,很多非常感謝(y) –