AngularJS + ExpressJS + 猫鼬:添加删除功能
AngularJS + ExpressJS + mongoose: Add delete functionality
我对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
. 我有一种感觉,我错过了一件,但我就是想不通它是什么。
确保启动 Express HTTP 服务器:
const express = require('express');
const router = express.Router();
router.delete('/diseases/:id', function(req, res, next) {
const id = req.params.id;
console.log(id);
});
const app = express();
app.use('/', router);
const server = http.createServer(app).listen(8080, serverCallback);
function serverCallback() {
const host = server.address().address;
const port = server.address().port;
console.log(`Server listening on ${host}:${port}`);
}
相关文章:
- 删除CKEditor工具栏按钮,但不删除功能
- 主体单击删除功能上的输入框宽度
- 在以下情况下,如何使用AJAX实现删除功能
- 如何在更改屏幕大小时删除功能(菜单响应)
- 删除功能不工作angularjs
- 是的,没有带有链接的JavaScript删除功能的选项
- 单击时从内存中删除功能
- 索引数据库:删除功能不起作用
- 我的Ruby在轨道上删除功能不起作用
- 二叉搜索树“删除”功能的优化
- 我的播放器播放列表删除功能不起作用
- 我正在尝试制作一个锚标签删除功能
- 允许向对象添加和删除功能的设计模式
- AngularJS - 做应用程序将提交和删除功能放入工厂
- AngularJS + ExpressJS + 猫鼬:添加删除功能
- highcharts系列删除功能删除所有原始系列数据(即使存储在新变量中)
- 正在尝试创建具有删除功能的待办事项列表
- Jquery删除功能
- Rails AJAX删除功能工作,但在刷新之前不会自行删除
- 添加,编辑和删除功能,我的javascript