【发布时间】:2023-04-07 01:18:01
【问题描述】:
我对 AngularJS 还是很陌生,甚至对 ExpressJS 和 Mongoose 也很陌生。我一直在按照教程发布到我的数据库并从我的数据库中获取,但我在添加删除功能时遇到了麻烦。
这里是我调用删除函数的地方:
<ul ng-repeat="disease in diseases">
<li>
{{ disease.name }}: {{ disease.chipped }},
{{ disease.received }},
{{ disease.smashed }},
{{ disease.complete }}
</li>
<button ng-click="removeDisease(disease)"></button>
</ul>
...在我的控制器中,我有:
app.controller('MainCtrl', [
'$scope',
'TrelloApi',
'diseases',
function($scope, TrelloApi, diseases){
$scope.diseases = diseases.diseases;
$scope.removeDisease = function(disease) {
console.log(disease);
diseases.destroy(disease);
}
}
]);
...调用我的diseases 工厂:
app.factory('diseases', [
'$http',
function($http){
var o = {
diseases: []
};
o.destroy = function(disease) {
return $http.delete('/diseases/' + disease._id).success(function(data){
console.log("Disease " + disease.name + " has been removed!");
o.getAll();
});
};
return o;
}
]);
这会返回 404 错误:
DELETE http://localhost:4000/diseases/<id> 404 (Not Found) 即使在我的路线中包括:
var mongoose = require('mongoose');
var express = require('express');
var router = express.Router();
var Disease = mongoose.model('Disease');
// Not functional
router.delete('/diseases/:id', function(req, res, next) {
console.log(req);
});
// Functional
router.post('/diseases', function(req, res, next) {
var disease = new Disease(req.body);
disease.save(function(err, diseases){
if(err){ return next(err); }
res.json(diseases);
});
});
...和ui.router 包括:
app.config([
'TrelloApiProvider',
'$stateProvider',
'$urlRouterProvider',
function(TrelloApiProvider, $stateProvider, $urlRouterProvider) {
.state('diseases', {
url: '/diseases/{id}',
templateUrl: '/javascripts/home/_diseases.html',
controller: 'MainCtrl'
});
$urlRouterProvider.otherwise('home');
}
]);
在/javascripts/home/_diseases.html 也有一个模板。我有一种感觉,我错过了一件,但我就是不知道它是什么。
【问题讨论】:
标签: javascript angularjs node.js express mongoose