我担心我只是犯了一个非常愚蠢的错误,但我已经做了几个小时无济于事。
我正在学习 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 发回?