angularjs + mongolab $ http.put不更新模型

时间:2013-03-14 07:29:32

标签: http angularjs crud put mlab

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

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

非常感谢任何正确方向的帮助或指示!

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

controller.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中的表单中进行了更改。 (是的,我在我的网址中有一个特定的contactId - 在浏览器中测试过,它会为我选择的特定联系人提取数据)

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

1 个答案:

答案 0 :(得分: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 =真] [&安培; F =] [&安培; FO =真] [&安培; S =] [&安培; SK =] [&安培; L =]

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

如果你能告诉我们Get commant是否正常工作会很好。