从 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