javascript - angularjs $location.path.replace 不工作

标签 javascript jquery html angularjs

我正在构建一个网站,这是一个具有多个 View 的单页网站。我正在使用 angularJS 来处理后端通信。

现在我在顶部有一个菜单栏,如果我点击它,旧页面应该向左滑动,淡出, View 改变, View 向右滑动,同时淡入. 虽然这一切都很好,但由于某种原因,路径更改不起作用。我的代码:

(MainController.js 的一部分)

$scope.goToPage = function(pageId){
        if(!$scope.animatingMainContent){
            $scope.animatingMainContent = true;
            $("#viewTitle").css({opacity: 1});
            $("#viewTitle").animate({opacity: 0}, {duration: 500, queue: false});
            $("#viewContainer").animate({left: "-200px", opacity: 0.1}, {duration: 500, complete: function(){
                $location.path("/"+pageId).replace();
                console.log($location.url());
                $("#viewContainer").css("left", "200px");
                $("#viewTitle").animate({opacity: 1}, {duration: 500, queue: false});
                $("#viewTitle").html($scope.pageTitles[pageId]);
                $("#viewContainer").animate({left: 0,opacity: 1}, {duration: 500, complete: function(){
                    $scope.animatingMainContent = false;
                    $location.path("/"+pageId).replace();
                }});
            }});
        }
    }

(菜单栏)

<strong class="ribbon-content">
    <a ng-click="goToPage('about');">About Me</a> | <a ng-click="goToPage('portfolio');">Portfolio</a> | <a ng-click="goToPage('contact');">Contact</a>
</strong>

所以,事情是,当我转到一个页面时,它会获取以前的路径。你从“关于我”开始。假设我要单击“投资组合”、“联系方式”、“关于我”,我会看到:关于我、投资组合。联系人,当 View 加载时。但是控制台会说:

"/portfolio"
"/contact"
"/about"

最佳答案

$location.path(...).replace() 位于 jQuery 事件处理程序(动画完成函数)中。您需要为 Angular 调用 $scope.$apply() 以获取更改。

关于javascript - angularjs $location.path.replace 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22533177/

相关文章:

javascript - React 中出现意外 token

javascript - jQuery 简单数据传递 HTML

javascript - addClass 动态加载的内容

javascript - 获取 html nextSibling

html - IE 8 中的 nth-child 选择器(伪类)

javascript - 如何动态检索输入类型 "url"的值并将其放入变量中?

javascript - 如何在 Firefox 插件中创建 splitmenu

javascript - 从 crypto.randomBytes 中排除某些字符的正确方法

php - timeago Jquery插件日期格式问题

html - C替换字符串中的html标签