尝试使用Angular中的$ resource发布数据

时间:2013-08-29 21:39:32

标签: angularjs

我担心我只是犯了一个非常愚蠢的错误,但我已经在这几个小时都无济于事。

我正在学习MEAN堆栈,我正在取得进展。现在我正在制作一个假的TaskList CRUD应用程序,以获得所有基础知识,到目前为止,我可以没有问题,但就是这样。

我的工厂:

.factory('Tasks', function ($resource) {

    var tasks = $resource('tasks',{},{update:{method: 'POST', isArray:true}});
    return tasks;
}

我的控制器:

.controller('TasklistCtrl', function ($scope, Tasks) {

    $scope.taskList = Tasks.query();

    $scope.addTask = function(){

        $scope.taskList.push($scope.newTask);
        Tasks.update({}, $scope.newTask);

};

我的html现在非常直接

<table>
    <th><h2>Fun Practice Task List!</h2></th>
    <tr ng-repeat="task in taskList | orderBy:'title'">
        <td><h3>{{ task.title }}</h3> </td> <td><h3>{{ task.task }}</h3></td>
    </tr>
</table>

<form>
    <input type="text" ng-model="newTask.title"/>
    <input type="text" ng-model="newTask.task"/>

    <h2>{{ newTask }}</h2>

    <button type="submit" ng-click="addTask()" class="btn btn-default">Submit</button>
</form>

后端表达了它的魔力,与mongodb相关联。

现在正在成功发送POST,但它只是将原始GET发送回服务器。原来我刚刚

Tasks.save();而不是

Tasks.update({},$ scope.newTask);

但这也不起作用。我很确定我只是不理解一些基本的东西,我将阅读更多的文档/观看更多的教程/练习 - 但希望有人可以在此期间给我一些建议!使用Angular 1.2 btw。

修改

因此,考虑到Zack的建议,我的控制器现在看起来像:

.controller('TasklistCtrl', function ($scope, Tasks) {

  $scope.taskList = Tasks.query();

  $scope.addTask = function(){

    Tasks.save($scope.newTask, function(data) {
      $scope.taskList.push(data);
    });

};

然而,当我看到发送成功的帖子时,观察帖子就是我从Tasks.query()得到的完全相同的数据。保存回调中的“数据”是相同的数据,不变。我在哪里错了,为什么不发送scope.newTask?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

Tasks.save($scope.newTask, function(data) {
    $scope.taskList.push(data);
});

取代这两个:

$scope.taskList.push($scope.newTask);
Tasks.update({}, $scope.newTask);