我担心我只是犯了一个非常愚蠢的错误,但我已经在这几个小时都无济于事。
我正在学习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?
答案 0 :(得分:0)
尝试这样的事情:
Tasks.save($scope.newTask, function(data) {
$scope.taskList.push(data);
});
取代这两个:
$scope.taskList.push($scope.newTask);
Tasks.update({}, $scope.newTask);