2016-02-01 6 views
1

Я пытаюсь вставить данные MondoDB с помощью службы http HTTP AngularJS, но одна из переменных и массив Что входит в коллекцию, что делать?MongoDB массив с AngularJS

nome: string. автор: струна. genero: массив. информация: строка.

Collection: mangas.

db.mangas.insert({nome: 'toriko', autor:'test', genero:['Ação','Aventura'], info:'...'}) 

Server.Js, найти манга.

app.get('/mangas', function(req, res){ 
    console.log('i receive a get request') 
    db.mangas.find(function (err, mangas){ 
    console.log(mangas); 
    res.json(mangas); 
    }); 

}); 

Server.Js, вставка манга.

app.post('/mangas', function (req, res) { 
    console.log(req.body); 
    db.mangas.insert(req.body, function(err, doc) { 
    res.json(doc); 
    }); 
}); 

index.html, нг-клик = "addManga"

<tr> 
    <td><input class="form-control"manga.nome></td> 
    <td><input class="form-control"manga.autor></td> 
    <td><input class="form-control"manga.genero></td> 
    <td><input class="form-control"manga.info></td> 
    <td><button class="btn btn-primary" ng-click="addManga()">Add manga</button></td> ----adiciona o metodo que se encontra no controller 
</tr> 

    <tr ng-repeat="manga in mangas"> 
     <td>{{manga.nome}}</td> 
     <td>{{manga.autor}}</td> 
     <td>{{manga.genero}}</td> 
     <td>{{manga.info}}</td> 
    </tr> 

Controller.js

$http.get('/mangas').success(function(response) { 
    console.log("eu recevi a data requisitada"); 
    $scope.mangas = response; 
    }); 

    $scope.addManga = function() { 
    console.log($scope.mangas); 
    $http.post('/mangas', $scope.mangas).success(function(response) { 
     console.log(response); 

    })}; 
+0

Ваш вопрос непонятен. В чем дело? – JGC

+0

извините, я не могу вставить значения с $ scope.addManga –

+0

На server.js, db.mangas.find, работайте, но нет с db.mangas.insert, –

ответ

1

В HTML:

вы должны использовать ng-model в HTML, чтобы связать с контроллером

Как:

<td><input class="form-control" ng-model="manga.nome"></td> 

вместо

<td><input class="form-control"manga.nome></td> 

и в контроллере:

вы должны использовать $scope.manga вместо $scope.mangas, потому что вы связываете manga в полях ввода html.

$scope.manga = {}; 
$scope.addManga = function() { 
    console.log($scope.manga); 
    $http.post('/mangas', $scope.manga).success(function(response) { 
     console.log(response); 

})}; 
+0

Большое вам спасибо –

+0

Добро пожаловать @Braian Silva:) –

+0

Могу ли я принять сомнение? gender - массив, код отправляет строку, как ее улучшить? –

Смежные вопросы