2017-07-28 97 views
2

我已经创建了一个角度的应用程序。在这个应用程序中,我想添加一个搜索。为此,我有一个文本框和一个按钮。文本框的名称是name =“搜索”如何从路由器请求获取价值?

我在API中有一个get方法。

router.get('/allActivities', (req, res) => { 

    Activity.find({ name: req.body.search }, (err, activities) => { 

     if(err) { 
      res.json({success: false, message: err}); 
     } else { 
      if(!activities) { 
       res.json({success: false, message: 'No recent activities found'}); 
      } else { 
       res.json({success: true, activities: activities}); 
      } 
     } 
    }) 

}); 

这是获取请求。在此,我想从正面角度文本框中的值结束

Activity.find({ name: req.body.search }, (err, activities) => 

这是MongoDB的

但我没有得到任何输出。这里的问题是我没有得到这个“req.body.search”的价值,我用它来获得文本框的价值。任何人都可以告诉我如何做到这一点?

如果我把

Activity.find({ name: 'Roshini' }, (err, activities) => 

这样,我得到的输出。所以敢肯定,我没有得到正确的文本框的值到这个get方法,:/

+0

为什么你没有为该文本框使用ngModel并通过使用ngmodel来获取值? –

+0

你能告诉我该怎么做吗?因为我不明白该怎么做? –

回答

0

HTML端

<input ng-model="search"> 

角控制器

$http({ 
    method: 'GET', 
    url: '/allActivities?search='+$scope.search 
}).then(function (response) { 
     $scope.activities = response.data || response 
    }, function (response) { 
     alert(response) 
    } 
); 

和后端访问它通过req.query.searchreq.params.search而不是req.body.search

+0

这是查询不是参数 – Akashii

+0

我如何发送请求?你可以解释我一点点 –

+0

您可以在角度上使用[$ http](https://docs.angularjs.org/api/ng/service/$http)... –