使用Angular js,Node Js,express js和Mongo DB更新表单值

时间:2015-10-13 09:59:36

标签: angularjs node.js mongodb express

我是MEAN的新手并且正在开发演示项目,我可以使用Nodejs,Express,Angular js和Mongo DB执行基本的CRUD活动,但在更新期间面临问题。

我不知道如何使用Angular js ng-click调用Mongo DB更新查询。我可以从Mongo DB中获取数据,该数据显示在下面的屏幕截图中。

但是如果用户对值进行任何更改,我想更新值,然后按提交。我使用ng-click进行更新。

我在最近两天尝试了但却找不到任何解决方案,我已经检查了一些例子,但发现它们有不同的方法。

任何帮助将不胜感激

Html查看:

enter image description here

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>&nbsp;</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
};

1 个答案:

答案 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