目前正在学习 MEAN 堆栈,我正在摆弄它,但我有点迷失了。
我想要实现的是利用外部 API 自动填充有关最初键入的标签的输入字段。
所以问题是,如何将 foo
的值一直传递到 server.js
进行调用?
- 最终用户输入
标签
并按“获取数据” - Controller 将
tag
的值(在我的.ejs
文件中定义为ng-model="object.tag"
) 传递到getData
路由 server.js
接受tag
并将其传递到外部 API URL 中进行调用- 外部 API 完成其任务,为我返回一个漂亮的
JSON
文件。 - Controller 会根据返回的 JSON 自动填充尽可能多的表单字段。
这里有一些代码位,以便您了解我的结构:
--index.ejs--
<input type="text" ng-model="object.tag" />
<button ng-click="grabFooInfo()">Get Data</button>
--controller.js--
$scope.grabFooInfo = function(){
$http.get('/getData').success(function(res){
// Will do stuff here after data comes back
});
};
--server.js--
app.get('/getData', function (req, res) {
var options = {
host: 'my.api.im.calling.com,
path: '/v1/fooApi/' + // #Need foo here //
headers: {
accept: "application/json"
},
method: 'GET'
};
var req = https.request(options, function (response) {
var fooData = '';
response.on('data', function (data) {
fooData += data;
});
response.on('end', function () {
res.send(fooData);
});
});
req.on('error', function (e) {
console.log('problem with request: ' + e.message);
});
req.end();
});
- 我的路由是否符合 Node 的预期工作方式?
- 如何使用 Angular 将输入值传递到
server.js
中的此内部函数?
最佳答案
在客户端, HTML
<input type="text" ng-model="object.tag" />
<button ng-click="grabFooInfo(object)">Get Data</button>
JS
$scope.grabFooInfo = function(object){
$http({
url:'/getData',
method: "GET",
params: object
});
});
在服务器端,
app.get('/getData', function (req, res) {
var data = req.params.data; // it contains the value foo
})
希望这对你有用!!
关于javascript - Angular.js 和 Node.js - 通过 Controller 将输入变量传递到 server.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35746569/