簡體   English   中英

使用 angularjs 更新 mongo 數據

[英]Updating mongo data with angularjs

有一個帶有 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('/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;
    })

問題出在服務上

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM