我在函数中传递/?preview=true并像这样捕获了app.js $route.current.params.preview。但是,当我在控制台日志中输出$route.current.params.preview时,它是未定义的。请帮助我如何解决该错误。

下面是blah.js这样的http://localhost:9000/?preview=true

    var buildLangPathUrl = function () {
        return LANG_PATH ? LANG_PATH + '/' : '/';
    };

    this.openFrontPageWithPreview = function () {
        $rootScope.openPage(buildLangPathUrl() + '?preview=true');
    };


app.js

    $rootScope.$on('$routeChangeSuccess', function (user) {
        var path = $location.path();
        $rootScope.showIndex =
            path === LANG_PATH + '/';
        if ($rootScope.showIndex) {
            pageService.setPageMetaData('');
            if($rootScope.loggedUser) {
                console.log($route.current.params.preview); << 'undefined'
                if (!$route.current.params.preview) {
                    routeService.openSuggestedJobs()
                }
            }
        }
    });

最佳答案

可以将$location.search()用作查询参数对象的设置器/获取器。

$routeParams.search对象

if ($location.search().preview) {
// or
if ($routeParams.search) {


确保注入您使用的任何一种

关于javascript - ngRoute传递参数不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35056419/

10-11 17:18