Angular JS - 在 $stateProvider 状态上设置和获取查询字符串参数
Angular JS - set and get query string parameter on $stateProvider state
我认为这基本上只是语法问题,但我设置了以下路由:
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider.state('addAlbum', {
url: "/albums/create/:artistId",
templateUrl: "public/albums/views/album.tpl.html",
controller: "createAlbumController",
data: {
pageTitle: 'Create Album'
},
resolve: {
albums: function (publicArtistServices) {
return publicArtistServices.getAlbums(1);
}
}
});
}]);
我需要 getAlbums() 方法来使用在 URL:
上传入的 artistId
return publicArtistServices.getAlbums({这里需要URL的艺术家ID});
我尝试使用 return publicArtistServices.getAlbums($state.params[0]); 来猜测它,但这只是抛出一个“ $state 未定义”错误。
此处正确的语法是什么?
您需要包含 $state
参数(以便 "inject" 它进入您的函数):
albums: function ($state, publicArtistServices) {
return publicArtistServices.getAlbums($state.params[0]);
}
如果这不起作用,请使用 $route.current.params.artistId
,如下所示:
$stateParams
是您要为此使用的内容。
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider.state('addAlbum', {
url: "/albums/create/:artistId",
templateUrl: "public/albums/views/album.tpl.html",
controller: "createAlbumController",
data: {
pageTitle: 'Create Album'
},
resolve: {
albums: function ($stateParams, publicArtistServices) {
return publicArtistServices.getAlbums($stateParams.artistId);
}
}
});
}]);
我认为这基本上只是语法问题,但我设置了以下路由:
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider.state('addAlbum', {
url: "/albums/create/:artistId",
templateUrl: "public/albums/views/album.tpl.html",
controller: "createAlbumController",
data: {
pageTitle: 'Create Album'
},
resolve: {
albums: function (publicArtistServices) {
return publicArtistServices.getAlbums(1);
}
}
});
}]);
我需要 getAlbums() 方法来使用在 URL:
上传入的 artistIdreturn publicArtistServices.getAlbums({这里需要URL的艺术家ID});
我尝试使用 return publicArtistServices.getAlbums($state.params[0]); 来猜测它,但这只是抛出一个“ $state 未定义”错误。
此处正确的语法是什么?
您需要包含 $state
参数(以便 "inject" 它进入您的函数):
albums: function ($state, publicArtistServices) {
return publicArtistServices.getAlbums($state.params[0]);
}
如果这不起作用,请使用 $route.current.params.artistId
,如下所示:
$stateParams
是您要为此使用的内容。
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider.state('addAlbum', {
url: "/albums/create/:artistId",
templateUrl: "public/albums/views/album.tpl.html",
controller: "createAlbumController",
data: {
pageTitle: 'Create Album'
},
resolve: {
albums: function ($stateParams, publicArtistServices) {
return publicArtistServices.getAlbums($stateParams.artistId);
}
}
});
}]);