angular-ui-router和$ stateProvider问题

时间:2015-10-05 17:45:30

标签: angularjs angular-ui-router angularjs-routing angularjs-controller

所以我在网页上使用了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 个答案:

答案 0 :(得分:2)

您是否正在尝试访问参数?你应该做的

$stateParams.user的{​​p> /profile/:user并在您的控制器中传递$stateParams而不是$stateProvider

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

答案 1 :(得分:1)

如果您想在$stateParams模块中使用myApp.profile,则应在其中加入ui.router,而不是ngRoute模块。

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