使用搜索输入使用AngularJS从json文件获取详细信息

使用搜索输入使用AngularJS从json文件获取详细信息,angularjs,Angularjs,我的目标: 我想在输入成员id时搜索成员详细信息。 我现在还不知道什么 我的视图已经准备好了。我已经创建了一个名为myService的服务,它使用$http 从members.json文件获取数据的服务。 我的问题? 我得到的不是搜索到的特定id的详细信息,而是 所有成员的姓名 你想问什么? 谁可以使用其id仅获取被搜索成员的详细信息 This is my view [1]: https://i.stack.imgur.com/PQ0BP.jpg This is my code

我的目标:
我想在输入成员id时搜索成员详细信息。

我现在还不知道什么
我的视图已经准备好了。我已经创建了一个名为myService的服务,它使用$http 从members.json文件获取数据的服务。

我的问题?
我得到的不是搜索到的特定id的详细信息,而是 所有成员的姓名

你想问什么?
谁可以使用其id仅获取被搜索成员的详细信息

  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>
这是我的观点
[1]: https://i.stack.imgur.com/PQ0BP.jpg
这是我的密码
[1]: https://i.stack.imgur.com/Q9tZp.jpg
这是我的json文件
{
“成员”:[
{“Id”:“1”,
“姓名”:“阿米特·辛格”,
“加入日期”:“21-03-2003”,
“编号”:“934234334”
},{
“Id”:“2”,
“姓名”:“穆罕默德·阿米尔”,
“加入日期”:“2012年3月21日”,
“编号”:“93434”
}
]
}
搜索成员。

搜寻

{{x.Name}

var-app=angular.module(“myApp”,[]); 应用程序控制器('ctrl', ['$scope','myService','$log',函数($scope,myService,$log){ $scope.doSearch=函数(){ getData($scope.searchId)。然后(函数(数据){ $scope.data=数据; $log.info($scope.data); }); }; }]) app.service('myService',['$http','$log',function($http,$log){ this.getData=函数(memberId){ 返回$http({ url:“members.json”, 方法:“获取”, 数据类型:“json”, contentType:“应用程序/json” }).然后(功能(响应){ var myData=response.data.member; 返回(myData); },功能(回应){ 投掷反应; }); } }]);
对不起,我误解了这个问题,下面是正确的答案:

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.filter(member=>member.Id==memberId)[0];
                return(myData);
            },function(response){
                throw response;
            });
        }
    }]);
您可以尝试以下方法:

角度模块('TableFilterApp',[]) .controller('TableFilterController',函数($scope){ $scope.plants=[ { 名称:'水星', 距离:0.4, 质量:0.055 }, { 名字:“维纳斯”, 距离:0.7, 质量:0.815 }, { 名称:“地球”, 距离:1, 质量:1 }, { 名字:“火星”, 距离:1.5, 质量:0.107 }, { 名称:“谷神星”, 距离:2.77, 质量:0.00015 }, { 名字:'木星', 距离:5.2, 质量:318 }, { 名称:“土星”, 距离:9.5, 质量:95 }, { 名称:“天王星”, 距离:19.6, 质量:14 }, { 名字:“海王星”, 距离:30,, 质量:17 }, { 名称:'冥王星', 距离:39, 质量:0.00218 }, { 名称:'Charon', 距离:39, 质量:0.000254 } ]; });

表过滤器
平均距离质量
{{p.name}{{p.distance}}{{p.mass}}

相关代码必须以文本形式出现在问题中。不是作为图像的URL。您的服务返回所有成员的数组
response.data.member
。它不处理作为参数传递的
memberId
。所以为什么您认为这个服务应该只返回一个成员,由memberId标识?为什么不更改代码以查找由memberId标识的成员,并返回该成员而不是整个数组?你需要一个循环。或者调用Array.filter()。我知道它返回一个数组。我只是想知道可以使用的不同方法。谢谢你,顺便说一句:)如果服务器上只有一个静态json文件,唯一可能的方法就是在数组中循环并找到具有给定ID的元素。你还可以做什么?使用console.log(myData);,查看函数响应中的数据。看它是否包含详细信息@AmitPhartiyal@Here我们使用| filter来过滤表中的数据,但在您的情况下,我们在li中查找数据,使用带有ng repeat的filter,但应该确保从模型中,这里我们有虚拟数据,而不是从角度服务中获取数据