私はmyFilterという名前の私自身のフィルターを作成し、myFilterを通して人の配列をパイプしようとします。出力は「名前を入力:」と続き、その後にテキストボックスが続きます。 AやB、Cなどの文字を書こうとしても何も表示されません。私は、ユーザーがテキストボックスに入力したものに応じてリストをフィルタリングしたいと思います。私はangularJSを使用しています。なぜコードは動作していないのですか?
<!DOCTYPE html>
<html>
<head>
<script src
="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js">
</script>
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<p>Enter name: <input type="text" ng-model="test" /></p>
<ul>
<li ng-repeat="x in person | myFilter">
{{x}}
</li>
</ul>
</div>
<script>
var app = angular.module('myApp', []);
app.filter('myFilter', function()
{
return function(x, test)
{
var i, c=0;
for (i=0; i<test.length; i++)
{
if (x[i] == test[i])
{
c++;
}
}
if (c==test.length)
{
return x;
}
}
});
app.controller('myCtrl', function($scope)
{
$scope.person = ['Alex', 'Buddy',
'Bob', 'Aaron', 'Clay', 'Clayton'];
});
</script>
</body>
</html>
これは完璧に動作しますがtest'が – user184994