2015-02-23 7 views
2

Я пытаюсь использовать пользовательский интерфейс маршрутизаторами решимости захватить некоторые данные для использования в контроллере:Угловая UIRouter решительность неизвестный провайдер

$stateProvider 
    .state('home', { 
    url: '/', 
    templateUrl: 'templates/home.html', 
    controller: 'homeCtrl', 
    resolve: {       
     friends: ['$http', function($http) { 
      return $http.get('api/friends.json').then(function(response) { 
        return response.data; 
      }) 
     }] 
    } 
}) 

Вот контроллер:

angular.module('app').controller('homeCtrl', ['friends', function(friends) { 
     this.friends = friends; 
    }]); 

HTML:

<section ng-controller="homeCtrl as home"> 
    <ul> 
     <li ng-repeat="friend in home.friends"> 
      {{friend.name}} : {{friend.age}} 
     </li> 
    </ul> 
</section> 

Как я могу заставить это работать? error Я получаю подсказки, чтобы определить услугу. Не совсем уверен, как это сделать. Кроме того, я знаю, что могу заставить его работать, вводя $ scope. Я надеюсь избежать этого, поскольку я пытаюсь узнать что-то новое здесь.

+0

вы проверили, что возвращается ваш сервер? – levi

+0

Вы импортируете модуль 'ui.router'? –

+0

Да, я импортировал ui.router. сервер возвращает данные. как я сказал выше, все отлично работает, если я ввожу $ scope – davidpm4

ответ

6

Вы включили контроллер дважды. Один раз в HTML и один раз в ui-router. Таким образом, вы фактически получаете два экземпляра контроллера.

Решение: удалить контроллер включает от HTML, и добавить в пользовательский интерфейс-маршрутизатор $ stateProvider:

controllerAs: 'home' 
Смежные вопросы