从 url in angularjs 获取参数
to get the parameter from the url in angularjs
我有一个页面添加推荐和编辑推荐的同一页面,当我点击添加推荐时,推荐 ID 在 URL 中为空,但是当我通过点击推荐进入页面时 link 它将显示推荐的相应 ID,在 URL 中显示,但如何从 URL 中获取该 ID 以使用它。
我的代码是:
.state('Admin.AddRecommendation',{
url: "/AddRecommendation/:recoId",
templateUrl: "views/AddRecommendation.html",
params: {recoId:null},
})
controller.js:
$scope.addRecommendation = function(){
var id = $routeParams.recoId;
console.log(id);
所以我哪里做错了。
谢谢
在使用 ui-router 时,要从 URL 获取查询参数,您可以使用
在你的 controller.js:
$state.params
这将为您提供 URL 中的所有参数。获取特定参数:
$state.params[<your-query-param>]
编辑:在您的问题中,使用 $state
而不是 $routeParams
正如您在 url 中定义 recoId
,您不需要 params: {recoId:null},
.state('Admin.AddRecommendation',{
url: "/AddRecommendation/:recoId",
templateUrl: "views/AddRecommendation.html"
})
您可以通过注入 $stateParams
来访问控制器中的参数
app.controller('MyController', ['$scope', '$state', '$stateParams', function($scope, $state, $stateParams) {
$scope.addRecommendation = function(){
var id = $stateParams.recoId;
console.log(id);
}
}]);
如果您使用的是组件,$stateParams
已弃用,取而代之的是 $transition$
但是,实现起来并不那么简单:https://github.com/angular-ui/ui-router/issues/3110#issuecomment-271101827
基本上,你可以把它当作
.component('foo', {
bindings: { $transition$: '<' },
controller: MyController,
controllerAs: 'vm'
});
app.controller('MyController', ['$scope', '$state', function($scope, $state) {
var vm = this;
$scope.addRecommendation = function(){
var id = vm.$transition$.params().recoId;
console.log(id);
}
}]);
我有一个页面添加推荐和编辑推荐的同一页面,当我点击添加推荐时,推荐 ID 在 URL 中为空,但是当我通过点击推荐进入页面时 link 它将显示推荐的相应 ID,在 URL 中显示,但如何从 URL 中获取该 ID 以使用它。
我的代码是:
.state('Admin.AddRecommendation',{
url: "/AddRecommendation/:recoId",
templateUrl: "views/AddRecommendation.html",
params: {recoId:null},
})
controller.js:
$scope.addRecommendation = function(){
var id = $routeParams.recoId;
console.log(id);
所以我哪里做错了。
谢谢
在使用 ui-router 时,要从 URL 获取查询参数,您可以使用
在你的 controller.js:
$state.params
这将为您提供 URL 中的所有参数。获取特定参数:
$state.params[<your-query-param>]
编辑:在您的问题中,使用 $state
$routeParams
正如您在 url 中定义 recoId
,您不需要 params: {recoId:null},
.state('Admin.AddRecommendation',{
url: "/AddRecommendation/:recoId",
templateUrl: "views/AddRecommendation.html"
})
您可以通过注入 $stateParams
app.controller('MyController', ['$scope', '$state', '$stateParams', function($scope, $state, $stateParams) {
$scope.addRecommendation = function(){
var id = $stateParams.recoId;
console.log(id);
}
}]);
如果您使用的是组件,$stateParams
已弃用,取而代之的是 $transition$
但是,实现起来并不那么简单:https://github.com/angular-ui/ui-router/issues/3110#issuecomment-271101827
基本上,你可以把它当作
.component('foo', {
bindings: { $transition$: '<' },
controller: MyController,
controllerAs: 'vm'
});
app.controller('MyController', ['$scope', '$state', function($scope, $state) {
var vm = this;
$scope.addRecommendation = function(){
var id = vm.$transition$.params().recoId;
console.log(id);
}
}]);