私の目標:
メンバーIDの入力時にメンバーの詳細を検索したいと思います。
私は今まで何をしていませんか?:
私のビューは準備ができています。$ http サービスを使用してmembers.jsonファイルからデータを取得するmyServiceという名前のサービスを作成しました。
私の問題?
検索された特定のIDの詳細を取得する代わりに、私は 全員の名前を取得しています
何をお求めですか?
彼のIDを使用して検索したメンバーの詳細のみを取得する相手。検索入力を使用してAngularJSを使用してjsonファイルから詳細を取得
This is my view
[1]: https://i.stack.imgur.com/PQ0BP.jpg
This is my code
[1]: https://i.stack.imgur.com/Q9tZp.jpg
This is my json file
{
"member":[
{ "Id":"1",
"Name":"Amit Singh",
"Dateofjoin":"21-03-2003",
"Number":"934234334"
},{
"Id":"2",
"Name":"Mohamad Aamir",
"Dateofjoin":"21-03-2012",
"Number":"934343434"
}
]
}
<body ng-app="myApp" ng-controller="ctrl">
<div>
<form class="form-horizontal">
<h2>Search for members.</h2>
<input type="text" name="" class='form-control' placeholder="Member ID"
ng-model="searchId"/><br>
<button class="btn btn-primary" ng-click="doSearch()">Search</button>
</form>
<div>
<p ng-repeat="x in data">
{{x.Name}}
</p>
</div>
</div>
</body>
<script type="text/javascript">
var app = angular.module("myApp",[]);
app.controller('ctrl',
['$scope','myService','$log',function($scope,myService,$log){
$scope.doSearch = function(){
myService.getData($scope.searchId).then(function(data){
$scope.data = data;
$log.info($scope.data);
});
};
}])
app.service('myService', ['$http','$log', function($http,$log){
this.getData = function(memberId){
return $http({
url:"members.json",
method:"GET",
dataType: 'json',
contentType: "application/json"
}).then(function(response){
var myData = response.data.member;
return(myData);
},function(response){
throw response;
});
}
}]);
</script>
関連するコードがで**でなければなりませんテキスト**としての質問。画像のURLではありません。 –
サービスはすべてのメンバーの配列である 'response.data.member'を返します。それは引数として渡される 'memberId'で何もしません。だから...なぜ、このサービスは会員IDで特定された唯一のメンバーを返すべきだと思いますか? memberIdによって識別されるメンバーを探すようにコードを変更し、配列全体の代わりにそのコードを返します。ループが必要です。またはArray.filter()の呼び出し。 –
配列を返すことがわかっています。これを可能にするさまざまな方法を知りたかっただけです。ありがとうbtw :) –