gpt4 book ai didi

angularjs - 使用 AngularJS 在客户端执行 HTTP 请求

转载 作者:可可西里 更新时间:2023-11-01 16:55:39 26 4
gpt4 key购买 nike

成功完成后this tutorial ,我开始构建我的应用程序路由来处理数据库中一些虚拟模型的创建,当我通过 Postman 应用程序请求它们时它工作得很好(使用以下 URL:https://lab4-roger13.c9users.io:8080/api/ Nerd )。

下一步是在 AngularJS 中创建一个服务,以允许用户在客户端请求这些相同的信息。在本教程结束时,我留下了这个:

angular.module('NerdService', []).factory('Nerd', ['$http', function($http) {

return {
// call to get all nerds
get : function() {
return $http.get('/api/nerds');
},

a : 2,

// these will work when more API routes are defined on the Node side of things
// call to POST and create a new nerd
create : function(nerdData) {
return $http.post('/api/nerds', nerdData);
},

// call to DELETE a nerd
delete : function(id) {
return $http.delete('/api/nerds/' + id);
}
}

}]);

这是链接我所有服务和路线的模块:

angular.module('sampleApp', 
['ngRoute', 'appRoutes', 'MainCtrl', 'NerdCtrl', 'NerdService'])
.controller('nerdDB', ['$scope', 'Nerd', function($scope, Nerd) {
$scope.a = Nerd.a;
}]);

这是我尝试访问的后端路由示例:

module.exports = function(app) {

// get all nerds in the database (accessed at GET https://lab4-roger13.c9users.io:8080/api/nerds)
app.get('/api/nerds', function(req, res) {

// use mongoose to get all nerds in the database
Nerd.find(function(err, nerds) {

// if there is an error retrieving, send the error.
// nothing after res.send(err) will execute
if (err)
res.send(err);

res.json(nerds); // return all nerds in JSON format
});
});

如您所想,我可以使用 {{a}} 表示法访问 html 服务的 a 属性,它显示 2。但是当我对 get 属性进行了同样的尝试,但没有显示任何内容。

我不确定,教程在 $http.get 中提供的 URL 是错误的,还是我错过了执行和访问 GET 响应的步骤?

(如果我遗漏了任何相关代码,它们与可以在 tutorial link 中找到的代码相同)

最佳答案

Nerd.get() 是一个从 $http 服务返回 promise 的函数。如果你想在你的 View 中显示它的结果,你可以像这样将结果绑定(bind)到你的 View :

.controller('nerdDB', ['$scope', 'Nerd', function($scope, Nerd) {
Nerd.get().then(function(nerds) {
$scope.nerds = nerds;
});
}]);

关于angularjs - 使用 AngularJS 在客户端执行 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33903264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com