2015-02-23 54 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 2015-02-23 03:23:38

+0

你有导入'ui.router'模块吗? – 2015-02-23 03:26:16

+0

是的,我输入了ui.router。服务器返回数据。就像我上面所说的,如果我注入$ scope,一切都很好 – davidpm4 2015-02-23 03:39:57

回答

6

您已经包含控制器两次。一旦进入HTML,并且一次进入UI路由器。因此,你实际上得到了控制器的两个实例。

解决方法:卸下控制器从HTML包括,并且将其添加到UI路由器$ stateProvider:

controllerAs: 'home' 
相关问题