Angularjs 无法更改位置路径

Angularjs 无法更改位置路径,angularjs,Angularjs,重定向在以下代码中不起作用。我的console.log()工作正常,但URL不变。不用说,我不明白为什么。我更改了URL,就像这是我应用程序的另一部分一样,它工作得很好 angular.module('workstation.process.approval', [ /* Dependencies */ 'workstation.services' ]). config(['$routeProvider', function($routeProv

重定向在以下代码中不起作用。我的
console.log()
工作正常,但URL不变。不用说,我不明白为什么。我更改了URL,就像这是我应用程序的另一部分一样,它工作得很好

angular.module('workstation.process.approval', [
        /* Dependencies */
        'workstation.services'
    ]).

    config(['$routeProvider', function($routeProvider) {
        /* URL mappings */
        $routeProvider.
            when('/approval', {templateUrl: 'partials/loading.htm',   controller: 'ApprovalCtrl'}).
            when('/approval/dashboard', {templateUrl: 'partials/approval/dashboard.htm',   controller: 'ApprovalCtrl'})
    }]).

    controller('ApprovalCtrl', ['$scope', '$cookieStore', 'WorkflowProcessService', 'socketUrl', '$location', function ($scope, $cookieStore, WorkflowProcessService, socketUrl, $location) {
        var socket = portal.open(socketUrl+'/socket/workstation/approval');
        socket.on({
            open: function () {
                this.send('getDashboard', {
                    workstationUuid: $cookieStore.get('workstationUuid')
                }, function(r) {
                    $scope.dashboard = r;
                    console.log('swap-path', r);
                    $location.path('/approval/dashboard'); //NOT WORKING
                });
            },
            close: function (reason) {
                console.log(reason);
            }
        });
    }]);
我认为window.location()会满足您的需要

加上 作为一种依赖

更改路径后,请尝试添加$scope.$apply()。回调时的套接字被称为外部Angular,因此您可能需要告诉Angular运行摘要循环以注意更改Mark Rajcok 5月14日21:18


它对我有用,谢谢

在更改路径后尝试添加
$scope.$apply()
。上的socket
回调在Angular外部调用,因此您可能需要告诉Angular运行摘要循环以注意更改。