gpt4 book ai didi

javascript - 使用 AngularJS 的 $resource 查询数据库

转载 作者:太空宇宙 更新时间:2023-11-04 03:11:22 24 4
gpt4 key购买 nike

我创建了一个通过 url 工作的 API,构建于 node.js , express.js , mongoDBangular.js .

我的API是这样调用的:

app.get('/api/posts/:query', api.postsQuery);

所以如果我输入 localhost:3000/api/posts/<whateverquery> ,mongoDB 将所有相关的 JSON 输出到我的浏览器,因此工作正常。

但是,我试图将其链接到我的 Angular 前端,但它导致了问题。我希望用户能够搜索表单并让我的数据库返回正确的记录。这是我的 Controller :

function indexCtrl($scope, $http, $resource) {
$scope.itemSearch = $resource('http://localhost\\:3000/api/posts/:query',
{query:''}, {get:{method:'JSONP'}});

$scope.doSearch = function(){
$scope.posts = $scope.itemSearch.get({query:$scope.searchTerm});
console.log($scope.posts[1]) // returns undefined
}
}

我的问题是,当我运行 $scope.doSearch 时,我在 Chrome 的资源面板中看到这样的查询:enter image description here因此确实正在加载正确的数据,但它没有将自身附加到 $scope.posts .

我感觉这可能是因为我需要一个回调函数;我尝试使用 callback: JSON_CALLBACK但这会弄乱我的查询/API(因为它在 ?callback=... 调用的末尾添加了 $resource ,这会破坏查询)。

关于我可以在这里做什么来让它工作有什么想法吗?问题是缺少回调吗?也许我可以在app.get中添加一些正则表达式调用:query后之后允许使用任何通配符>

最佳答案

将回调添加到您的 $resource 调用中:

$scope.doSearch = function(){
$scope.itemSearch.get({query:$scope.searchTerm}, function(data){
$scope.posts = data.posts;
console.log($scope.posts[1]);
});
};

docs中的通知他们利用回调:

var User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123}, function(u, getResponseHeaders){
u.abc = true;
u.$save(function(u, putResponseHeaders) {
//u => saved user object
//putResponseHeaders => $http header getter
});
});

关于javascript - 使用 AngularJS 的 $resource 查询数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17552977/

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