From 2715a5cda8b4245f78278db5d6f55c840a852926 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 27 Jun 2014 17:15:10 +0200 Subject: [PATCH] Make lazy the tg-nav directive. --- app/coffee/modules/base/navurls.coffee | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/app/coffee/modules/base/navurls.coffee b/app/coffee/modules/base/navurls.coffee index 7183612b..71675ebd 100644 --- a/app/coffee/modules/base/navurls.coffee +++ b/app/coffee/modules/base/navurls.coffee @@ -35,7 +35,7 @@ class NavigationUrlsService extends taiga.Service return @.urls[name] -NavigationUrlsDirective = ($navurls, $auth, $q) -> +NavigationUrlsDirective = ($navurls, $auth, $q, $location) -> # Example: # link(tg-nav="project-backlog:project='sss',") @@ -67,21 +67,26 @@ NavigationUrlsDirective = ($navurls, $auth, $q) -> return url.replace(/(:\w+)/g, replacer) link = ($scope, $el, $attrs) -> - parseNav($attrs.tgNav, $scope).then (result) -> - [name, options] = result + $el.on "click", (event) -> + event.preventDefault() - user = $auth.getUser() - options.user = user.username if user + parseNav($attrs.tgNav, $scope).then (result) -> + [name, options] = result + user = $auth.getUser() + options.user = user.username if user - url = $navurls.resolve(name) - fullUrl = formatUrl(url, options) - $el.attr("href", fullUrl) + url = $navurls.resolve(name) + fullUrl = formatUrl(url, options) + $location.url(fullUrl) + + $scope.$on "$destroy", -> + $el.off() return {link: link} module = angular.module("taigaBase") module.service("$tgNavUrls", NavigationUrlsService) -module.directive("tgNav", ["$tgNavUrls", "$tgAuth", "$q", NavigationUrlsDirective]) +module.directive("tgNav", ["$tgNavUrls", "$tgAuth", "$q", "$location", NavigationUrlsDirective])