gpt4 book ai didi

javascript - 将输入值作为参数发布到 Angular 中的 Web 服务 API

转载 作者:行者123 更新时间:2023-12-03 09:01:17 26 4
gpt4 key购买 nike

我已经开始学习 Angular,但我被一些本应微不足道的事情困住了。我有 Rails 背景,创建了一个非常简单的 Rails Web 服务来管理邮件列表。目前我的网络服务中存在 2x API 端点:

/api/v1/mailing_lists [GET]
/api/v1/mailing_lists [POST]

POST 端点需要有效的电子邮件作为 API 调用中的 PARAM。这就是我被困住的地方。如何将此参数传递给 Angular 中的 API?我尝试过使用网络上的解决方案,但我只是没有得到正确的结果。这是我到目前为止所得到的:

在我的 services.js 中:

angular.module('webFrontendApp.services', []).factory('MailingList', function($resource) {
var data = $resource(
'http://localhost:3000/api/v1/mailing_lists.json',
{},
{
// 'get': { method:'GET', cache: false},
'query': { method:'GET', cache: false, isArray:true },
'save': {method: 'POST', cache: false }
});
return data;
});

在 app.js 中

....
.when('/list/new', {
templateUrl: 'views/list-new.html',
controller: 'MailingListCtrl'
})

....

Controller 作为 mailinglist.js

angular.module('webFrontendApp.controllers', [])

.controller('MailingListCtrl', function($scope, MailingList) {
// Get all posts
$scope.mailing_lists = MailingList.query();

// Our form data for creating a new post with ng-model
$scope.memberData = {};
$scope.newMember = function() {
var member = new MailingList($scope.memberData);
member.$save();
};
});

表格如下所示:

<form role="form" ng-submit="newMember()">
<div class="row">
<div class="input-group">
<input type="text" ng-model="memberData.email" placeholder="New mailing list member" class="form-control">
<span class="input-group-btn">
<input type="submit" class="btn btn-primary" value="Add">
</span>
</div>
</div>
</form>

当我提交表单时,似乎没有发生任何事情,但我收到来自网络服务的 405 错误响应。查看我的 Web 服务日志后,我可以看到收到了 POST 请求,但没有传递参数,因此被拒绝。

任何帮助将不胜感激!

PS。我已确保在我的 Rails 应用程序上启用 CORS。

最佳答案

$save 方法中传递参数,在 MailingList 中传递 post_data,所以基本上这应该可以工作

$scope.newMember = function() {
var member = new MailingList();
member.$save({email: $scope.memberData.email});
};

关于javascript - 将输入值作为参数发布到 Angular 中的 Web 服务 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32298627/

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