2017-10-31 6 views
0

数字の配列から重複を削除する新しいカスタムフィルタを作成しようとしていますが、エラーも出力もありません。anglejsを使用してカスタムユニークが動作しない理由

HTMLのCODE:

<!DOCTYPE> 
<html> 
    <head> 
    </head> 
    <body> 
     <div ng-app="myApp"> 
      <div ng-controller="myCont"> 

       <div ng-repeat="num in uniqueArray | unique"> 
        checking numbers : 
        {{num}} 


       </div> 

      </div> 
     </div> 
     <script src="jquery-3.0.0.js"></script> 
     <script src="angular.js"></script> 
     <script src="angular_try.js"></script> 

    </body> 
</html> 

角度JSコード:

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

myApp.controller("myCont",["$scope","$filter",function($scope,$filter){ 

$scope.uniqueArray = [5,10,500,2,6,5,4,10,20,5] 

}]) 

myApp.filter("unique",function(){ 
var arrNumb = []; 
var arrNumb2 =[]; 
return function(input){ 
angular.forEach(input,function(value,index,obj){ 
if(arrNumb.indexOf(value)==-1) 
{ 
    arrNumb.push(index); 
    arrNumb2.push(value); 
} 

}) 
    } 
return arrNumb2; 
}) 

しかし、私が間違ってやっているものを、画面上の何もありません?

+0

[NG-繰り返しフィルタアウト重複結果の作り方]の可能な重複(https://stackoverflow.com/questions/15914658/how-to-make-ng-repeat-filter-out-duplicate-結果) –

+0

ここにplunkrを入れてURLを共有してください – rijin

+0

arrNumbの値の有無をチェックしてから、インデックスを内部に格納します。なぜあなたは2つの配列を持っていますか?あなたはただ一つ必要です。そして、あなたの配列は内部ではなく関数の外で定義され、返されます。 –

答えて

0

おそらくちょうどreturnのステートメントが間違っています。返された関数の内部にreturn arrNumb2;を入れてください(それを1行上に移動してください)。 また、コメントに示唆されているように、内部の宣言も移動してみてください。

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

myApp.controller("myCont",["$scope","$filter",function($scope,$filter){ 

$scope.uniqueArray = [5,10,500,2,6,5,4,10,20,5] 

}]) 

myApp.filter("unique",function(){ 

    return function(input){ 
    var arrNumb = []; 
    var arrNumb2 =[]; 
    angular.forEach(input,function(value,index,obj){ 
    console.log("protima koo koo ") 
    //arrNumb.push(value[name]) 
    if(arrNumb.indexOf(value)==-1) 
    { 
     arrNumb.push(index); 
     arrNumb2.push(value); 
    } 

    }) 
    return arrNumb2; 
    } 

}) 
+0

それはまだ動作しません...その場合は、配列の重複が許可されていないというエラーをスローする – Punit

関連する問題