2016-07-09 3 views
0

У меня проблема с $http.get, когда я пытаюсь получить данные из моей БД (mongoDB).

Я использую средний стек.

angular.module('wildroseApp') 
.controller('WildroseComponent', function($scope, $http){ 
    $http.get('/api/wildrose') 
     .success(function (data) { 
     $scope.wildrose = data; 
     console.log($scope.wildrose); 
    }) 
     .error(function (err) { 
     alert('Error!'); 
    }); 
}) 
.component('wildrose', { 
    templateUrl: 'app/wildrose/wildrose.html', 
    controller: WildroseComponent, 
    controllerAs: Wildrose 
}); 

Кроме того, у меня есть еще один вопрос:

Когда я использую controllerAs в компоненте, мой браузер говорит

Uncaught ReferenceError: Wildrose is not defined

Но, если удалить его будет в порядке.

Я попытался решить ее следующим образом:

Просто добавьте в конструкторе немного битный код:

class WildroseComponent { 
    constructor($http) { 
    this.$http = $http; 
    this.wildrose = []; 
    } 
    $onInit(){ 
     this.$http.get('/api/wildrose') 
      .then(response => { 
       this.wildrose = response.data; 
       console.log(this.wildrose); 
      });; 
    } 
} 
+0

Какая версия AngularJs вы используете? –

+0

версия 1.5.0 –

+0

В чем Ваш вопрос/проблема? Что означает «не работает»? – dfsq

ответ

0

ControllerAs требует строки, а не объект:

controllerAs: "wildrose" 

Есть ли у вас настроить конечную точку на вашем сервере с помощью node/express под /api/wildrose, которая возвращает строку json, считанную из вашей базы данных?

Просьба предоставить больше кода с вашего внутреннего блока и ошибок, в противном случае его трудно диагностировать.

+0

да я сделал конечную точку YEOMAN генератора это код из контроллера // Получает список Wildroses индекса функции экспорта (REQ, Рез) { возврата Wildrose.find(). Exec() .then (respondWithResult (res)) .catch (handleError (res)); } это index.js router.get ('/', controller.index); Нет ошибки, просто ничего не показывать, когда я использую $ http.get –

+0

Если вы используете хром, что такое панель сети, говорящая под инструментами dev? Запрос отправлен правильно? Каков ответ от вашего заднего конца? – Samuel

+0

Одна вещь, я не уверен в MEAN, но метод поиска mongodb требует, чтобы объект был аргументом. Если вы хотите найти все записи в коллекции, используйте пустой объект .find ({}) – Samuel