AngularJS que mostram dados do MongoDB

Tenho um problema com a interacção de AngularJS e MongoDb. Eu uso NodeJS e ExpressJS no lado do servidor. Com Mangusto falo com Mongo. Acabei de fazer as rotas.

Índice.js

      app.get('/api/dashboard', function (req, res) {

    Homepage
        .find({}, 'title -_id createdBy allbids.bid endTime')
        .exec(function (err, auctions) {
            if(err)
                res.send(err);
            console.log(auctions);
            res.json(auctions);
        })
});
A consola mostra todos os campos de que preciso.

Depois passo pela frente. Uso a via Angular desta forma:

       var app = angular.module('auction', [ 'ngRoute','HomeCtrl','NewAuctionCtrl', 'FollowingAuctionsCtrl', 'MyAuctionsCtrl']);


      app.config(function ($routeProvider, $locationProvider)
 {

 $routeProvider

.when('/', {
    templateUrl: 'views/partials/dashboard.html',
    controller: 'HomeController'
})



$locationProvider.html5Mode(true);


});

e o meu controlador é este:

    angular.module('HomeCtrl', [])
  .controller('HomeController',function ($scope, $http) {
  $http.get('/api/dashboard').then(function(data) {
       console.log(data);
       $scope.auctions= data;

     })
  });
No painel de instrumentos.html

         <div class="panel panel-default" ng-controller="HomeController">
<div class="panel-heading">All The Auctions</div>
<div class="panel-body">
    <ul class="list-group">
        <li class="list-group-item" ng-repeat="auction in HomeController.auctions">
            {{auction}}
        </li>
    </ul>
</div>

Não funciona. Eu preciso apenas para utilizar {{auction.title}} em vez de {{auction}}??

Author: J3STER, 2017-03-23

2 answers

Assumindo que os seus dados estão a ser obtidos com sucesso a partir do servidor, você pode fazer

<div class="panel panel-default" ng-controller="HomeController">
  <div class="panel-heading">All The Auctions</div>
    <div class="panel-body">
      <ul class="list-group">
        <li class="list-group-item" ng-repeat="auction in auctions">
          {{auction}}
        </li>
     </ul>
   </div>
 </div>

Não precisa de ser um controlador doméstico.leilao. Isto irá colocar todo o objecto do leilão naquele li, por isso, dependendo do que estás a tentar fazer, podes querer fazer algo como {{auction.title}} como mencionaste
 2
Author: AJ Funk, 2017-03-24 00:41:30

Uma vez que você tem que declarar usar o HomeController no outtest {[[[0]} que cobre o seu rumo e ui, li, essa área irá ligar o $scope no HomeController automaticamente.

Por isso, basta usar {{auction in auctions}}. Se tiver outro $scope como $scope.foo = "foo" no HomeController, pode tentar <div>{{foo}}</div> dentro do {[4] } para ter a ideia

Não tenho a certeza se quer separar os módulos e injectá-los no seu leilão do módulo que o tem .config () ou se você só precisa HomeController para ser um dos controladores no módulo de acção .

Se a tua intenção é a segunda, sugiro que uses var app = angular.module('auction',['ngRoute']).config( bla bla )

E no HomeController, use angular.module('auction').controller('HomeController',function ($scope, $http) { bla bla }) para que não tenha de injectar um novo controlador sempre que criar um novo controlador

Espero que ajude.
 0
Author: AimeTPGM, 2017-03-24 03:30:16