我是MEAN的新手并且正在开发演示项目,我可以使用Nodejs,Express,Angular js和Mongo DB执行基本的CRUD活动,但在更新期间面临问题。
我不知道如何使用Angular js ng-click调用Mongo DB更新查询。我可以从Mongo DB中获取数据,该数据显示在下面的屏幕截图中。
但是如果用户对值进行任何更改,我想更新值,然后按提交。我使用ng-click进行更新。
我在最近两天尝试了但却找不到任何解决方案,我已经检查了一些例子,但发现它们有不同的方法。
任何帮助将不胜感激
Html查看:
HTML查看代码:
<table cellspacing="0" cellpadding="0" border="0" id="id-form" ng-app="app-setting" ng-controller="SettingController" >
<tbody><tr>
<th valign="top">Facebook Link:</th>
<td><input type="text" class="inp-form" ng-model="settings.facebook"></td>
<td></td>
</tr>
<tr>
<th valign="top">Twitter Link:</th>
<td><input type="text" class="inp-form" ng-model="settings.twitter"></td>
</tr>
<tr>
<th valign="top">Google+:</th>
<td><input type="text" class="inp-form" ng-model="settings.googleplus"></td>
<td></td>
</tr>
<tr>
<th valign="top">Youtube:</th>
<td><input type="text" class="inp-form" ng-model="settings.youtube"></td>
<td></td>
</tr>
<tr>
<th valign="top">Email:</th>
<td><input type="text" class="inp-form" ng-model="settings.email"></td>
<td></td>
</tr>
<tr>
<th valign="top">Contact #:</th>
<td><input type="text" class="inp-form" ng-model="settings.contactnumber"></td>
<td></td>
</tr>
<tr>
<th> </th>
<td valign="top">
<input type="submit" class="form-submit" value="update" ng-click="update(settings)">
</td>
<td></td>
</tr>
</tbody></table>
<!-- end id-form -->
控制器:
.module('app-setting')
.controller('SettingController',SettingController);
function SettingController($scope, $http ) {
$scope.page = "Setting";
$http.get('/admin/get-setting-list')
.then(function(res){
$scope.settings = res.data;
});
$scope.update = function(data){
//what will be here
};
路线:
var Setting = require('../models/setting').Setting;
router.put('/admin/setting/:id', function(req, res, next) {
Setting.findAndModify(req.params.id,req.body, function (err, post) {
if (err) return next(err);
user:res.json(post);
});
});
型号:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var adminService = new Schema({
facebook: String,
youtube: String,
googleplus: String,
twitter:String,
email:String,
contactnumber:String,
created: {type: Date, default: Date.now}
});
var Setting = mongoose.model('Setting', adminService);
module.exports = {
Setting : Setting
};
答案 0 :(得分:2)
好吧,你的HTML调用update方法并将设置对象传递给它,这在角度控制器中看起来不错。
通过查看node.js代码,您需要调用
在settingController中$ http.put('/ admin / setting /:id',....)
REF: https://docs.angularjs.org/api/ng/service/ $ HTTP
你需要了解http方法 http://www.w3schools.com/tags/ref_httpmethods.asp