angular.js 路由和状态参数
angular.js routing and stateparams
我正在尝试修改 meanjs 的标准用户模块。我添加了一条简单的路线:
state('users', {
url: '/users/:username',
templateUrl: 'modules/users/views/view-profile.client.view.html'
});
在我看来:
data-ng-controller="ViewProfileController" data-ng-init="findUser()"
我还向我的控制器注入了 $stateParams。所以在我的 ViewProfileController
- findUser
函数中,当我这样写时:
console.log($stateParams.username)
我希望获得用户名参数。但它 returns undefined
.
当我这样设置路线时,
state('users', {
url: '/users/:username',
template: function ($stateParams){
return $stateParams.username;
}
});
它 returns 用户名。我不知道出了什么问题或遗漏了什么。有什么想法吗?
编辑:这是我的完整控制器代码
'use strict';
angular.module('users').controller('ViewProfileController', ['$scope', '$http', '$stateParams', '$location', 'Users', 'Authentication',
function($scope, $http, $location, Users, Authentication, $stateParams) {
$scope.user = Authentication.user;
$scope.findUser = function () {
console.log($stateParams);
...
};
}
]);
我应该使用控制器而不是模板。
将 template:
代码替换为以下代码段:
controller: function($stateParams){
console.log('username: '+$stateParams.username);
}
您的依赖项不匹配 - 依赖项列表需要以相同的顺序匹配控制器函数中的参数:
'use strict';
angular.module('users')
.controller('ViewProfileController', ['$scope', '$http', '$stateParams', '$location', 'Users', 'Authentication',
function($scope, $http, $stateParams, $location, Users, Authentication) {
$scope.user = Authentication.user;
$scope.findUser = function () {
console.log($stateParams);
};
}
]);
我正在尝试修改 meanjs 的标准用户模块。我添加了一条简单的路线:
state('users', {
url: '/users/:username',
templateUrl: 'modules/users/views/view-profile.client.view.html'
});
在我看来:
data-ng-controller="ViewProfileController" data-ng-init="findUser()"
我还向我的控制器注入了 $stateParams。所以在我的 ViewProfileController
- findUser
函数中,当我这样写时:
console.log($stateParams.username)
我希望获得用户名参数。但它 returns undefined
.
当我这样设置路线时,
state('users', {
url: '/users/:username',
template: function ($stateParams){
return $stateParams.username;
}
});
它 returns 用户名。我不知道出了什么问题或遗漏了什么。有什么想法吗?
编辑:这是我的完整控制器代码
'use strict';
angular.module('users').controller('ViewProfileController', ['$scope', '$http', '$stateParams', '$location', 'Users', 'Authentication',
function($scope, $http, $location, Users, Authentication, $stateParams) {
$scope.user = Authentication.user;
$scope.findUser = function () {
console.log($stateParams);
...
};
}
]);
我应该使用控制器而不是模板。
将 template:
代码替换为以下代码段:
controller: function($stateParams){
console.log('username: '+$stateParams.username);
}
您的依赖项不匹配 - 依赖项列表需要以相同的顺序匹配控制器函数中的参数:
'use strict';
angular.module('users')
.controller('ViewProfileController', ['$scope', '$http', '$stateParams', '$location', 'Users', 'Authentication',
function($scope, $http, $stateParams, $location, Users, Authentication) {
$scope.user = Authentication.user;
$scope.findUser = function () {
console.log($stateParams);
};
}
]);