从 url 中获取参数 Angular
Get parameter from the url in Angular
嗯,我有一个问题。我现在正在使用一个工厂来处理我应用程序中两个控制器的 dtas。当我点击一个 link 时,它会将我引导到另一个具有特定 url 的视图,我想重用最后一个标签,所以我试图像
一样对其进行切片
window.location.pathname.split("/").slice(-1)[0]
但它似乎不起作用,并说:$location 未定义:/
关于如何解决这个问题的任何想法?也许我犯了一个微不足道的错误,但是......越多的眼睛看到的越多:)
portApp.controller("itemController", ["$scope", "workFactory",
function($scope, workFactory, $stateParams) {
console.log(window.location.pathname.split("/").slice(-1)[0]);
$location.path(); // it says $location is undefined in the console
var newpath = $stateParams.itemLink;
$scope.onViewLoad = function(){
console.log(newpath);
};
}
]);
这是它的 jsfiddle - https://jsfiddle.net/d5bjrjov/
在你的控制器中,你没有注入 $location
这就是它显示 $location
未定义的原因。
portApp.controller("itemController", ["$scope", "workFactory",
function($scope, workFactory, $stateParams) {
必须是
portApp.controller("itemController", ["$scope", "workFactory", '$stateParams', '$location',
function($scope, workFactory, $stateParams, $location) {
In your State Provider
你有
.state('items', {
url: '/items/{itemLink}',
controller: 'itemController'
});
URL 模式错误。如果您想在 URL 中包含动态数据,则必须使用 :itemLink
作为模式。
.state('items', {
url: '/items/:itemLink',
controller: 'itemController'
});
在您的控制器中,您可以使用 $stateParams
获取它
$stateParams.itemLink
嗯,我有一个问题。我现在正在使用一个工厂来处理我应用程序中两个控制器的 dtas。当我点击一个 link 时,它会将我引导到另一个具有特定 url 的视图,我想重用最后一个标签,所以我试图像
一样对其进行切片window.location.pathname.split("/").slice(-1)[0]
但它似乎不起作用,并说:$location 未定义:/ 关于如何解决这个问题的任何想法?也许我犯了一个微不足道的错误,但是......越多的眼睛看到的越多:)
portApp.controller("itemController", ["$scope", "workFactory",
function($scope, workFactory, $stateParams) {
console.log(window.location.pathname.split("/").slice(-1)[0]);
$location.path(); // it says $location is undefined in the console
var newpath = $stateParams.itemLink;
$scope.onViewLoad = function(){
console.log(newpath);
};
}
]);
这是它的 jsfiddle - https://jsfiddle.net/d5bjrjov/
在你的控制器中,你没有注入 $location
这就是它显示 $location
未定义的原因。
portApp.controller("itemController", ["$scope", "workFactory",
function($scope, workFactory, $stateParams) {
必须是
portApp.controller("itemController", ["$scope", "workFactory", '$stateParams', '$location',
function($scope, workFactory, $stateParams, $location) {
In your State Provider
你有
.state('items', {
url: '/items/{itemLink}',
controller: 'itemController'
});
URL 模式错误。如果您想在 URL 中包含动态数据,则必须使用 :itemLink
作为模式。
.state('items', {
url: '/items/:itemLink',
controller: 'itemController'
});
在您的控制器中,您可以使用 $stateParams
$stateParams.itemLink