Javascript 根据另一个$http.get()中的选择执行$http.get()

Javascript 根据另一个$http.get()中的选择执行$http.get(),javascript,json,angularjs,Javascript,Json,Angularjs,我现在正在对plunker进行概念验证。我试图用从$http.get()中提取的数据填充下拉列表,根据用户选择,我想对另一个RESTAPI进行另一个$http.get()调用,获取相关数据并在ng repeat列表中使用它。目前我有第一部分工作,但我不知道如何打第二个电话。我正在为第一组数据使用假RESTAPI,并用id填充下拉列表,其中有100个。其次,我想让用户从下拉列表中选择1-100,并根据他们的postId显示来自fake rest api的匹配电子邮件集,其中有500封 我希望这有足

我现在正在对plunker进行概念验证。我试图用从
$http.get()
中提取的数据填充下拉列表,根据用户选择,我想对另一个RESTAPI进行另一个
$http.get()
调用,获取相关数据并在
ng repeat
列表中使用它。目前我有第一部分工作,但我不知道如何打第二个电话。我正在为第一组数据使用假RESTAPI,并用
id
填充下拉列表,其中有100个。其次,我想让用户从下拉列表中选择1-100,并根据他们的
postId
显示来自fake rest api的匹配电子邮件集,其中有500封

我希望这有足够的道理。是我有1/2的工作方式

编辑以澄清:

中的选项应该是所有的
id
。有100个唯一的
id

  • 应该是与上面找到的
    具有相同
    postId的
    相应的
    电子邮件

    因此,如果我从下拉列表中选择
    1
    ,我希望这些邮件组成列表:

    {
        "postId": 1,
        "id": 1,
        "name": "id labore ex et quam laborum",
        "email": "Eliseo@gardner.biz",
        "body": "laudantium enim quasi est quidem magnam voluptate ipsam eos\ntempora quo necessitatibus\ndolor quam autem quasi\nreiciendis et nam sapiente accusantium"
      },
      {
        "postId": 1,
        "id": 2,
        "name": "quo vero reiciendis velit similique earum",
        "email": "Jayne_Kuhic@sydney.com",
        "body": "est natus enim nihil est dolore omnis voluptatem numquam\net omnis occaecati quod ullam at\nvoluptatem error expedita pariatur\nnihil sint nostrum voluptatem reiciendis et"
      },
      {
        "postId": 1,
        "id": 3,
        "name": "odio adipisci rerum aut animi",
        "email": "Nikita@garfield.biz",
        "body": "quia molestiae reprehenderit quasi aspernatur\naut expedita occaecati aliquam eveniet laudantium\nomnis quibusdam delectus saepe quia accusamus maiores nam est\ncum et ducimus et vero voluptates excepturi deleniti ratione"
      },
      {
        "postId": 1,
        "id": 4,
        "name": "alias odio sit",
        "email": "Lew@alysha.tv",
        "body": "non et atque\noccaecati deserunt quas accusantium unde odit nobis qui voluptatem\nquia voluptas consequuntur itaque dolor\net qui rerum deleniti ut occaecati"
      },
      {
        "postId": 1,
        "id": 5,
        "name": "vero eaque aliquid doloribus et culpa",
        "email": "Hayden@althea.biz",
        "body": "harum non quasi et ratione\ntempore iure ex voluptates in ratione\nharum architecto fugit inventore cupiditate\nvoluptates magni quo et"
      },
      {
    
    因此,当选择
    1
    时,我希望我的列表如下所示:

    • Eliseo@gardner.biz
    • 杰恩_Kuhic@sydney.com
    • Nikita@garfield.biz
    • Lew@alysha.tv
    • Hayden@althea.biz

    希望这有助于澄清问题。

    这里发生了很多事情:

    • 您希望将用于筛选的on change功能与选择功能分开
    • 您希望利用ng模型在回调中进行选择
    • 您只想在选择后加载
      ul
      的记录
    • 理想情况下,postId的过滤应该是服务器端的,因此您只需要获得所需的数据;当然,没有服务器,只有一个简单的文件
      GET
      ,您对此无能为力,但我会将其添加到
      $http.GET()
      ,而不是html,因为这是执行GET的地方(实际上,我会将其提取到服务中,但这是一个完全不同的问题)
    我为您更新了plunkr以使select正常工作


    实际上,您甚至不需要
    filter()
    回调,因为您在
    ul
    ng repeat
    中正确地使用了它,所以我取消了它。改用更新后的plunkr

    看起来你做对了。在
    onChange()
    函数中未定义Just
    search()
    。在这里,您可以调用
    $http.get()
    并通过将信息应用到
    $scope.records
    来填充数据字段。对不起,我不能100%确定您想说什么。你能再详细解释一下吗?嗯,也许我没有完全理解。现在,它获取所有帖子,并将它们填充到
    ul
    select
    下拉列表中。然后,当您选择其中一个时,它将调用未定义的
    search()
    函数。你到底想让它做什么?交叉线。呵呵。请关注我的第二条评论。您希望从
    ul
    选择和
    输入中得到什么行为?我想搜索只是刚刚测试出来的东西。在html上,我有
    {{item.email}}
    ,现在这是假的。我希望这是来自第二个假的RESTAPI的所有电子邮件,它们的
    postId
    与下拉列表中选择的内容相同。天哪,莫利。你是一个传奇。虽然我仍然想使用搜索、筛选和更改,但您给了我一个极好的开始。太好了,先生。你会让我脸红的!不,只是在同样的问题上挣扎着向前看。好好利用它。