【问题标题】:Updating mongo data with angularjs使用 angularjs 更新 mongo 数据
【发布时间】:2015-12-09 11:21:35
【问题描述】:

有一个带有 angular 和 mongo 的应用程序。 这是我的 api 的一部分,在女巫中我已经发布并提出请求。发布请求工作正常,但是当我输入数据时,出现错误“无法设置未定义的属性 'typelocal'”。在邮递员中提出请求可以正常工作:

var Flat = require('../models/flat.js');
        .put('/realestate/flats/edit/:id', function(req, res){
            Flat.findById(req.params.id, function(err, flat){
                if(err){
                    res.send(err);
                }
                flat.typelocal = req.body.typelocal;
                flat.save(function(err, flat){
                    if(err){
                        res.send(err);
                    }
                    res.json(flat);
                })
            })
        })

        .post('/realestate/flats/add', function(req, res){
            var flat = new Flat({
                    creator: req.decoded.id,
                    typelocal: req.body.typelocal,
                });
            flat.save(function(err, newFlat){
                    if(err){
                        res.send(err);
                        return;
                    }
                    // io.emit('flat', newFlat);
                    res.json({message: "New Flat Created!"});
                });
        })
    return api;
};

如果我将我的 put 请求更改为:

.put('/realestate/flats/edit/:id', function(req, res){
   Flat.findById(req.params.id, function(err, flat){
      if(err){
         res.send(err);
      }
      res.json(flat);
   })
})

我有一个对象,例如:

{
  "_id": "55f51361589d7ff015c899df",
  "creator": "55ab2ee75d4c5c901f2517f9",
  "typelocal": "rrrr",
  "__v": 0,
  "created": "2015-09-13T06:10:41.054Z"
}

这是我的 html,我有一个用于更新数据的输入:

<div ng-controller="EditFlatController as flat">
    <form class="form-control">
        <input type="text" class="form-control input-md" name="localtype" ng-model="flat.flatData.typelocal" placeholder="Typ lokalu" value="{{ flat.flat.typelocal }}">
        <button ng-click="flat.editFlatSave()" class="my-btn my-btn-danger rebtn-add-add">Send</button>
    </form>
</div>

这是我的控制器的一部分:

.controller('EditFlatController', ['UpdateFlat', '$http', '$location', '$routeParams', function(UpdateFlat, $http, $location, $routeParams){
        vm = this;
        $http.get('/api/realestate/flats/edit/' + $routeParams.id).success(function(data){
            vm.flat = data;
        })
        vm.editFlatSave = function(){
            vm.message = '';
            UpdateFlat.update(vm.flatData)
                .success(function(data){
                    vm.flatData = '';
                    vm.message = data.message;
                    $location.path('/realestate/flats');
                })
        }
    }])

这是服务:

.factory('UpdateFlat', function($http){
        var flatFactory = {};
        flatFactory.update = function(flatData){
            return $http.put('/api/realestate/flats/edit/:id', flatData);
        };
        return flatFactory;
    })

【问题讨论】:

    标签: javascript angularjs mongodb express


    【解决方案1】:

    服务有问题

    .factory('UpdateFlat', function($http, $routeParams){
            var flatFactory = {};
            flatFactory.update = function(flatData){
                return $http.put('/api/realestate/flats/edit/' + $routeParams.id, flatData);
            };
            return flatFactory;
        })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多