最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Angularjs没有在特定字段中保存数据

IT培训 admin 6浏览 0评论

Angularjs没有在特定字段中保存数据

我试图在名称字段中保存数据,但尽管POST请求运行没有任何错误,mongodb集合只显示_id和_v更新。

简而言之,我无法在特定领域保存数据。

视图:

<div id="bookslist" class="row" ng-controller="poster as po">
<form ng-submit="po.createTodo()">
  <div class="col-sm-7 form-group">
    <label for="" class="col-sm-2">Name</label>
    <input type="text" name="" value="" placeholder="" ng-model="po.book.name" class="col-sm-6">
   </div>
    <div class="col-sm-7 text-right">
       <button type="submit" class="btn btn-sm btn-success">Submit</button>
    </div>
 </form>
</div>

控制器:

app.controller('poster', ['$http', function($http) {
    var self = this;

     var config = {
                headers : {
                    'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
                }
            };

    self.createTodo = function() {
      console.log('Ouch baby!!');
      $http.post('http://localhost:3000/test',{'name': self.book }, config)
        .then(function(response) {
          console.log(self.book);
          console.log('data is  '+response); // data is  [object Object]
          console.log(response + " added"); //[object Object] added

        }, function(errResponse) {
          console.log('Error: ' + errResponse.statusText);
          console.log(errResponse.status);
        });
    };
  }]);

路线:

'use strict';
module.exports = function(app) {
  var bookList = require('../controllers/testController');


app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  res.header("Content-Type', 'application/x-www-form-urlencoded;charset=utf-8");
  next();
});

  app.route('/test')
    .get(bookList.list_all_books)
    .post(bookList.create_a_books);
};

testController.js(我在设置API时创建的):

'use strict';

var mongoose = require('mongoose'),
  menu = mongoose.model('test');

exports.list_all_menus = function(req, res) {
  menu.find({}, function(err, menu) {
    if (err)
      res.send(err);
    res.json(menu);
    console.log(res);
  });
};

exports.create_a_menu = function(req, res) {
  var new_menu = new menu(req.body);
  new_menu.save(function(err, menu) {
    if (err)
      res.send(err);
    res.json(menu);
  });
};



exports.read_a_menu = function(req, res) {
  menu.findById(req.params.menuId, function(err, menu) {
    if (err)
      res.send(err);
    res.json(menu);
  });
};


exports.update_a_menu = function(req, res) {
  menu.findOneAndUpdate({_id: req.params.menuId}, req.body, {new: true}, function(err, menu) {
    if (err)
      res.send(err);
    res.json(menu);
  });
};


exports.delete_a_menu = function(req, res) {
  menu.remove({
    _id: req.params.menuId
  }, function(err, menu) {
    if (err)
      res.send(err);
    res.json({ message: 'bestseller_books successfully deleted' });
  });
};

注意:

  1. 使用邮递员,POST和GET请求工作得很好
  2. 每次我按下提交按钮,我在mongodb集合中看到这个长数组:{“_ id”:“5a3f7a406e4b781598c05e92”,“__ v”:0},{“_ id”:“5a3f7a53487cb51b347e2f5e”,“__ v”:0},{“_ id “:” 5a3f7a5fd6a48b1ac0357054" , “__ v”:0}

没有保存名称,而name是集合中的第二个字段。

  1. 我无法理解在testController.js中定义的方法create_a_menu,list_all_menus,read_a_menu的用法。这些有什么用?
回答如下:

你试过$http.post('http://localhost:3000/test',{'name': self.book.name }, config)吗?

因为你在html模板中使用ng-model="po.book.name"

要么

只需将其重命名为book_name

$http.post('http://localhost:3000/test',{'name': self.book_name }, config)

ng-model="po.book_name"

Angularjs没有在特定字段中保存数据

我试图在名称字段中保存数据,但尽管POST请求运行没有任何错误,mongodb集合只显示_id和_v更新。

简而言之,我无法在特定领域保存数据。

视图:

<div id="bookslist" class="row" ng-controller="poster as po">
<form ng-submit="po.createTodo()">
  <div class="col-sm-7 form-group">
    <label for="" class="col-sm-2">Name</label>
    <input type="text" name="" value="" placeholder="" ng-model="po.book.name" class="col-sm-6">
   </div>
    <div class="col-sm-7 text-right">
       <button type="submit" class="btn btn-sm btn-success">Submit</button>
    </div>
 </form>
</div>

控制器:

app.controller('poster', ['$http', function($http) {
    var self = this;

     var config = {
                headers : {
                    'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
                }
            };

    self.createTodo = function() {
      console.log('Ouch baby!!');
      $http.post('http://localhost:3000/test',{'name': self.book }, config)
        .then(function(response) {
          console.log(self.book);
          console.log('data is  '+response); // data is  [object Object]
          console.log(response + " added"); //[object Object] added

        }, function(errResponse) {
          console.log('Error: ' + errResponse.statusText);
          console.log(errResponse.status);
        });
    };
  }]);

路线:

'use strict';
module.exports = function(app) {
  var bookList = require('../controllers/testController');


app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  res.header("Content-Type', 'application/x-www-form-urlencoded;charset=utf-8");
  next();
});

  app.route('/test')
    .get(bookList.list_all_books)
    .post(bookList.create_a_books);
};

testController.js(我在设置API时创建的):

'use strict';

var mongoose = require('mongoose'),
  menu = mongoose.model('test');

exports.list_all_menus = function(req, res) {
  menu.find({}, function(err, menu) {
    if (err)
      res.send(err);
    res.json(menu);
    console.log(res);
  });
};

exports.create_a_menu = function(req, res) {
  var new_menu = new menu(req.body);
  new_menu.save(function(err, menu) {
    if (err)
      res.send(err);
    res.json(menu);
  });
};



exports.read_a_menu = function(req, res) {
  menu.findById(req.params.menuId, function(err, menu) {
    if (err)
      res.send(err);
    res.json(menu);
  });
};


exports.update_a_menu = function(req, res) {
  menu.findOneAndUpdate({_id: req.params.menuId}, req.body, {new: true}, function(err, menu) {
    if (err)
      res.send(err);
    res.json(menu);
  });
};


exports.delete_a_menu = function(req, res) {
  menu.remove({
    _id: req.params.menuId
  }, function(err, menu) {
    if (err)
      res.send(err);
    res.json({ message: 'bestseller_books successfully deleted' });
  });
};

注意:

  1. 使用邮递员,POST和GET请求工作得很好
  2. 每次我按下提交按钮,我在mongodb集合中看到这个长数组:{“_ id”:“5a3f7a406e4b781598c05e92”,“__ v”:0},{“_ id”:“5a3f7a53487cb51b347e2f5e”,“__ v”:0},{“_ id “:” 5a3f7a5fd6a48b1ac0357054" , “__ v”:0}

没有保存名称,而name是集合中的第二个字段。

  1. 我无法理解在testController.js中定义的方法create_a_menu,list_all_menus,read_a_menu的用法。这些有什么用?
回答如下:

你试过$http.post('http://localhost:3000/test',{'name': self.book.name }, config)吗?

因为你在html模板中使用ng-model="po.book.name"

要么

只需将其重命名为book_name

$http.post('http://localhost:3000/test',{'name': self.book_name }, config)

ng-model="po.book_name"

发布评论

评论列表 (0)

  1. 暂无评论