$ location.path导致整页刷新

时间:2015-02-17 20:31:49

标签: angularjs

我有一个带链接的页面。如果用户点击链接,将使用ng-show显示弹出窗口。这是 ng-click

<div class="adItem" ng-click="showArticleMethod(tiki._id, tiki.tikiTitle)" ng-repeat="tiki in tikis track by tiki._id">

点击后,在控制器中调用 showArticleMethod

$scope.showArticleMethod = function(tikiID, article){

    var title = $filter("underscoreString")(article)
    $location.path(tikiID + "/" + title)

    $scope.showArticle = tikiID

}

该方法还使用$ location.url()将网址更改为: index.html#/1/title

由于我希望人们能够直接链接到我设置此路线的文章:

$routProvider.when("/", {

    templateUrl: "partials/promise.html",
    controller:"tiki.controllers.promise",
    reloadOnSearch:false

}).when("/:id/:title/", {

    templateUrl:"partials/promise.html",
    controller:"tiki.controllers.promise",
    reloadOnSearch:false

}

一切正常,但弹出上设置的动画(不透明度:0到不透明度:1)不起作用

我的猜测是网址不仅会被更改,而且会重新加载,所以我尝试添加&#39; reloadOnSearch:false &#39;但这并没有任何效果。

如何更改网址而不重新加载网址并保留css动画?

这是我的完全控制器:

/* Controllers */
angular.module('tiki.controllers').controller("tiki.controllers.promise", ["$scope", "tikiDB", "$routeParams", "$filter", "$location", function($scope, tikiDB, $routeParams, $filter, $location){

    $scope.tikis = tikiDB.query()
    $scope.location = ""

    $scope.showArticleMethod = function(tikiID, article){

        var title = $filter("underscoreString")(article)
        $location.path(tikiID + "/" + title)

        $scope.showArticle = tikiID

    }

    $scope.hideArticleMethod = function(){

        $location.path("")
        $scope.showArticle = false

    }

    if($routeParams){

        $scope.showArticle = parseInt($routeParams.id);

    }

}])

变量&#39; showArticle&#39;设置为&#39; false&#39;如果没有显示文章。如果必须显示文章,则将其设置为article ID。该文章显示在弹出窗口中,该弹出窗口使用添加到<body>标记的类激活。

<body ng-class="{'bodyShowArticle': showArticle}" ng-view="">

如果我添加$ timeout,则动画再次起作用,但在超时后刷新整页:

    $timeout(function(){

        $location.path(tikiID + "/" + title)

    }, 1000)

0 个答案:

没有答案