Я беспокоюсь, что я просто делаю действительно глупую ошибку, но я был в этом несколько часов безрезультатно.
Я изучаю стек 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.
редактировать:
Так принимая предложение Зака, мой контроллер теперь выглядит следующим образом:
.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 не отправляется обратно?
Спасибо за быстрый ответ, к сожалению, я получаю эту ошибку TypeError: Object функция ресурса (значение) { copy (значение || {}, это); } не имеет метода 'post' at Object. $ Scope.addTask Итак, похоже, что «пост» - это не метод $ resource? – monkeyhands
О да, кричит. Tasks.save (... –
Спасибо, я думаю, что это - работа от работы, но я должен делать что-то неправильно, потому что ничего на самом деле не происходит так, как это должно быть. Данные, отправленные почтой, как представляется, являются данными (а точнее, данные, отправленные с помощью save(), совпадают с данными, которые я захватил с запросом()). Поэтому мне, возможно, придется перестроить все это - независимо от того, ваш ответ решил мою непосредственную проблему, даже если он просто выставил для меня еще один: P. – monkeyhands