私は本当にばかげた間違いを犯しているのではないかと心配していますが、私はこれを数時間無駄にしていました.
私は MEAN スタックを学習している最中であり、進歩しています。今、私はすべての基本を理解するために小さな偽の TaskList CRUD アプリを作成しています。これまでのところ問題なく GET できますが、それだけです。
私の工場:
.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を使用しています。
編集:
したがって、ザックの提案を受けて、私のコントローラーは次のようになります。
.controller('TasklistCtrl', function ($scope, Tasks) {
$scope.taskList = Tasks.query();
$scope.addTask = function(){
Tasks.save($scope.newTask, function(data) {
$scope.taskList.push(data);
});
};
ただし、正常に送信された投稿が表示されますが、観察すると、投稿は Tasks.query() から取得したデータとまったく同じです。save コールバックの 'data' は変更されていない同じデータです。ここでどこが間違っているのですか? scope.newTask が返されないのはなぜですか?