我有一个带链接的页面。如果用户点击链接,将使用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)