1

所以我在我的網頁中使用了ui-router。到目前爲止,我有兩個視圖:用戶列表和用戶配置文件。

我建立以下狀態:

.config(function($stateProvider, $urlRouterProvider) { 
// 
// For any unmatched url, redirect to /state1 
$urlRouterProvider.otherwise("/home"); 
// 
// Now set up the states 
$stateProvider 
    .state('home', { 
     url: "/home", 
     templateUrl: "index.html", 
     controller: "View1Ctrl" 
    }) 
    .state('profile', { 
     url: "/profile/:user", 
     templateUrl: "profile/profile.html", 
     controller: "ProfileCtrl", 
     params : { user: null } 
    }) 
}); 

我的模塊包括:

angular.module('myApp', [ 
'ngRoute', 
'ui.bootstrap', 
'ui.router', 
'myApp.home', 
'myApp.profile', 
]) 

和引發錯誤的控制器:

ngular.module('myApp.profile' ,['ngRoute', 'ui.bootstrap']) 


.controller('ProfileCtrl', function($stateProvider) { 
     console.log($stateProvider.params); 
    }); 

這是該錯誤:

Error: [$injector:unpr] http://errors.angularjs.org/1.3.14/$injector/unpr?p0=<div ui-view="" class="ng-scope">tateProviderProvider%20%3C-%20%24stateProvider%20%3C-%20ProfileCtrl 

所以:你有什麼想法,我哪裏出錯了?

回答

2

你想訪問參數?你應該做

$stateParams.user/profile/:user並在你的控制器中通過$stateParams而不是$stateProvider

.controller('ProfileCtrl', function($stateParams) { 
    console.log($stateParams); 
}); 
+0

謝謝,就是這樣。我需要休息:) – uksz

1

如果你想使用$stateParamsmyApp.profile模塊,你應該在它ui.router,而不是ngRoute模塊。

angular.module('myApp.profile' ,['ui.router', 'ui.bootstrap']) 
+0

謝謝!我想我很累,並沒有意識到我需要stateParams;) – uksz