2016-07-27 68 views
2
<p ng-repeat="name in names">{{name | cancatSpace}} </p> 

app.filter('cancatSpace', function() { 
    return function (input) { 
     return input.replace(/\s+/g, ''); 
    }; 
}); 

有了上面的代碼工作,如果我的名字是'hello world'應該成爲helloworld,但事實並非如此。我沒有看到任何錯誤。還有什麼我錯過了?我試圖在我的過濾器中做console.log(input)它不能控制任何東西?AngularJs自定義過濾器不會在我的情況

+1

其實它的工作原理。也許在另一個地方有什麼不對,但是這個過濾器適用於你的目的。 – developer033

回答

2

無論你在這裏發佈的代碼是好還是壞。如果有問題,那就是一些小錯誤。請查看您的控制檯並搜索控制檯上是否有任何錯誤。

我已經發布了確切的代碼和它的工作正常。您可以運行並測試它。但是,如果您希望我們調試它,請發佈您的完整代碼。

var myApp = angular.module("myApp", []); 
 

 
myApp.controller("myCtrl", ['$scope', function($scope) { 
 
    $scope.names = ["john doe", "john doe2", "john doe 3", "john doe 5"]; 
 
}]); 
 

 

 
myApp 
 
     .filter('cancatSpace', function() { 
 
      return function (input) { 
 
       return input.replace(/\s+/g, ''); 
 
      }; 
 
     }); 
 
    
<!DOCTYPE html> 
 
<html ng-app="myApp"> 
 

 
    <head> 
 
    <link rel="stylesheet" href="style.css"> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script> 
 
    <script src="script.js"></script> 
 
    </head> 
 

 
    <body ng-controller="myCtrl"> 
 
    <p ng-repeat="name in names">{{name | cancatSpace}}</p> 
 
    </body> 
 

 
</html>

0

嘗試使用以下將Concat的你在文本字段通過任何文本。

<div data-ng-app="app" data-ng-controller="mycontroller"> 
    <input type="text" data-ng-model="greeting" /><br /> 
    Concated text : {{greeting|concat}} 
</div> 

<script type="text/javascript"> 
     var mainApp = angular.module('app', []); 

     mainApp.controller('mycontroller', ['$scope', 'concatFilter', function ($scope, concatFilter) { 
      $scope.greeting = 'hello hello'; 
      $scope.concatFilter = concatFilter($scope.greeting); 
     }]); 

     mainApp.filter('concat', function() { 
      return function (input) { 
       return input.replace(/\s/g, ''); 
      }; 
     }); 

    </script> 

的過濾器的更多信息,請參閱這裏的文檔.. https://docs.angularjs.org/guide/filter

相關問題