2

我刚开始使用角度和编码,所以请耐心等待......

我目前正在尝试编写一个类似电话簿的基本 CRUD 应用程序。到目前为止,我添加和查看联系人没有任何问题,但我被困在如何通过MongoLab 的 API更新我在 MongoLab 上的模型$http.put

任何正确方向的帮助或指示将不胜感激!

这是我的 UpdateCtrl 函数和附加的相关表单(此处放置了一个通用 URL 用于演示目的):

控制器.js

function UpdateCtrl($scope, $http, $routeParams, $location){
$scope.contactId = $routeParams.contactId;

var url = 'https://api.mongolab.com/api/databases/<d>/collections/<c>/<id>;

$http.get(url).
    success(function(mongoDataById) {
        $scope.contact = mongoDataById;
    });

$scope.updateContact = function() {
    $http.put(url, $scope.contact);
    };
}

update.html(部分视图)

<form ng-submit="updateContact()">

    <label for="fullname">Name</label>
    <input type="text" id="fullname" ng-model="contact.fullname" ><br/>

    <label for="email">Email</label>
    <input type="text" id="email" ng-model="contact.email"><br/>

    <label for="phone">Phone</label>
    <input type="text" id="phone" ng-model="contact.phone"><br/>

    <button type="submit">Update</button>
</form>

编辑

@Stewie 和 @Arun P Johny,当我执行 updateContact() 时,控制台中似乎没有任何错误。我怀疑它发送的 PUT 请求与初始 GET 请求产生的数据相同,即使当前 $scope 中的表单已进行了更改。(是的,我的 Url 中有一个特定的contactId - 在浏览器中测试,它会提取我选择的特定联系人的数据)

@pkozlowski.opensource - 是的,当我开始这个项目时,我实际上添加了那个库,但是当我能够使用相当简单的 $http POST 和 GET 函数时,我觉得没有必要。如果我无法使用基本的 $http.put,现在可以尝试一下。

4

1 回答 1

0

您可能需要 API 密钥才能访问 Mongo Lab 的 RESTful API,例如:

GET /databases/{database}/collections/{collection}

列出给定集合中所有文档的示例:

https://api.mongolab.com/api/1/databases/my-db/collections/my-coll?apiKey=myAPIKey

可选参数[q=][&c=true][&f=][&fo=true][&s=][&sk=][&l=]

更多信息请访问: http ://docs.mongolab.com/restapi/#authentication

如果您能告诉我们 Get commant 是否正常工作,那就太好了

于 2014-11-25T20:37:11.140 回答