Угловое приложение не показывает значения $ scope, а не сообщение об ошибке

0

Я изучаю стек MEAN и пытаюсь создать приложение на основе demoof этого курса (thinkster.io/mean-stack-tutorial#creating-schemas-with-mongoose). Я проверил, что на db есть завиток, это нормально, но угловые не связывают их.

→ Это вид (index.ejs):

<html>
<head>
    <meta charset="UTF-8">
    <title>demo</title>
    <link href="/bootstrap.min.css" rel="stylesheet">
    <script src="/angular.min.js"></script>
    <script src="/angular-ui-router.js"></script>
    <script src="/angularApp.js"></script>
</head>
<body ng-app="demo">
<div class="row">
  <div class="col-md-6 col-md-offset-3">
    <ui-view></ui-view>
  </div>
</div>
<script type="text/ng-template" id="/home.html">
    <div class="page-header">
    <h1>Patients : </h1>
  </div>

    <div ng-repeat="patient in patients">
        <a>{{patient.name}} - Nom: {{patient.surname}} - Age: {{patient.old}}</a>
    </div>
</script>
</body>
</html>

→ Это мой код узла js (index.js)

var express = require('express');
var router = express.Router();

var mongoose = require('mongoose');
var Patient = mongoose.model('Patient');

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

/* GET all patients */
router.get('/patients', function(req, res, next){
    Patient.find(function(err, patients){
        if(err){ return next(err); }

        res.json(patients);
    });
});

//configure express : retrieve automatically post by id
router.param('patient', function(req, res, next, id){
    var query = Patient.findById(id);

    query.exec(function(err, patient){
        if(err){ return next(err); }
        if(!patient){ return next(new Error("Aucun patient dans la base...")); }

        req.patient = patient;
        return next();
    });
});

module.exports = router;

→ И это мой угловой код (angularApp.js)

var app = angular.module('flapperNews', ['ui.router']);

app.config([
    '$stateProvider',
    '$urlRouterProvider',
    function($stateProvider, $urlRouterProvider){
        $stateProvider
            .state('home', {
                url: '/home',
                templateUrl: '/home.html',
                controller: 'MainCtrl',
                resolve: {
                    postPromise: ['posts', function(posts){
                        return posts.getAll();
                    }]
                }
            });
        $urlRouterProvider.otherwise('home');
    }]);

app.factory('posts', ['$http', function($http){
    var o = {
        posts: []
    };

    o.getAll = function() {
        return $http.get('/posts').success(function(data){
            angular.copy(data, o.posts);
        });
    };

    return o;
}]);

app.controller('MainCtrl', [
'$scope',
'posts',
function($scope, posts){
    $scope.posts = posts.posts;
}]);
  • 0
    Пожалуйста, сначала найдите, где это идет не так. Это получение данных? это привязка к сфере? Это отображение значений? Вы можете проверить, сделав некоторые console.log(data)
  • 0
    Я думаю, что это привязка к объему, потому что выборка данных - это нормально, если я обращаюсь к / пациентам, она возвращает всех моих клиентов в формате json. Я попытался использовать консоль (данные), но я использую регистратор «Морган» в экспрессе, и он не показывает все сообщения консоли.

1 ответ

0

Вы не связали контроллер "MainCtrl" в своем html

  • 0
    Это потому, что он использует государственную маршрутизацию
  • 0
    да, эффективно, в учебнике они не связывают контроллер MainCtrl, потому что они используют модуль ui-router, контроллер объявлен в состоянии «home» в app.config ().
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню