1

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

我正在学习 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 直接发送回服务器。本来我只是有

任务.save(); 代替

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

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

编辑:

所以按照 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 发回?

4

1 回答 1

0

尝试这样的事情:

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

代替这两个:

$scope.taskList.push($scope.newTask);
Tasks.update({}, $scope.newTask);
于 2013-08-29T22:24:55.183 回答