所以我在网页上使用了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
那么:你有什么想法我出错了吗?
答案 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'])