Angularjs 使用Angular js、Node js、express js和Mongo DB更新表单值
我是一个全新的人,在这个演示项目中,我可以使用Nodejs、Express、Angular js和Mongo DB执行基本的CRUD活动,但在更新过程中会遇到问题 我不知道如何使用单击调用Mongo DB update查询。我可以从Mongo DB获取数据,如下面的屏幕截图所示 但如果用户对值进行任何更改并按submit,我想更新这些值。我正在使用ng click进行更新 我在过去的两天里一直在尝试,但没有找到任何解决方案,我检查了几个例子,但发现它们有不同的方法 任何帮助都将不胜感激 Html视图: HTML视图代码:Angularjs 使用Angular js、Node js、express js和Mongo DB更新表单值,angularjs,node.js,mongodb,express,Angularjs,Node.js,Mongodb,Express,我是一个全新的人,在这个演示项目中,我可以使用Nodejs、Express、Angular js和Mongo DB执行基本的CRUD活动,但在更新过程中会遇到问题 我不知道如何使用单击调用Mongo DB update查询。我可以从Mongo DB获取数据,如下面的屏幕截图所示 但如果用户对值进行任何更改并按submit,我想更新这些值。我正在使用ng click进行更新 我在过去的两天里一直在尝试,但没有找到任何解决方案,我检查了几个例子,但发现它们有不同的方法 任何帮助都将不胜感激 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 -->
路线:
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
};
嗯,您的HTML调用update方法并将settings对象传递给它,这在angular controller中看起来很正常 通过查看node.js代码,您需要调用 settingController中的$http.put('/admin/setting/:id',..) 参考: $http 您需要了解http方法
感谢您的回复,您能否确认我如何将表单值与id一起传递,以便在我的路由中进行处理,我已经编写了“$scope.update=function(user){var id=user.\u id;$http.put('/admin/setting/:'+id,user);};”但是它不起作用//对于id,您需要有一些唯一的字段,或者尝试在客户端生成一个唯一的键,或者mongo提供一个默认的文档id。但是在您的情况下,您可以使用contact num作为唯一的`$scope.update=function(data){$http.post('/admin/setting/:'+data.contactnumber,data,config)。然后(successCallback,errorCallback);};是的,我写了这个
$scope.update=function(data){var id=data.\u id;$http.put('/admin/setting/:'+id,data);}
但它不起作用,你能不能建议我正确地传递了id和表单数据,或者遗漏了什么?嘿,你的数据只是来自html的设置json,我看不到设置有一个_id键,所以你错了,试试console.log(id);你是一个投反对票的人吗?:561B61E96ABD5C1A11011E8BB必须是561B61E96ABD5C1A11011E8BB,不需要冒号,请查看示例代码u需要app.put()而不是app.use()
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
};