我一直在论坛上搜索类似于我的问题,但没有任何运气。但是我找到了一个我要分享的解决方案。
我的问题是,当我想改变路线时,它并没有将我引导到正确的位置。例如我的网址是www.dnndev.me/Projects/Project#/dashboard。我尝试创建一些像这样的链接:
// goes to www.dnndev.me#/tasks.
<a ng-href="#/task"></a>
// same as above however what's between my {{}} is rendered blank.
<a ng-href="{{window.location.pathname}}#/task"></a>
'window.location.pathname'提供了我的网址缺失部分,但它不会呈现。我想过将它存储在一个变量中,但这对我来说似乎不是很有角度。
我尝试使用$ location但它没有路径名属性。我确实遇到了$ location.path('path),它完成了我需要的工作。但是我并不关心每个控制器注入$ location服务。在思考了一下后,我提出了一个想法,即在我的应用程序运行函数中在$ rootscope上创建一个函数,它就能满足我的需求。
# this is written in coffeescript
run = ['$location', '$rootScope', ($location, $rootScope) ->
$rootScope.route = (path) ->
$location.path(path)
//html
<button ng-click="$root.route('task')">
</button>
我需要这个的原因是因为'pathname'是可变的。我正在使用DNN框架,这个模块可以放在任何路径上,例如'www.website.com/foo/bar#/dashboard'。
有没有更好的方法来实现这个目标?
感谢。
答案 0 :(得分:0)
您可以使用$ location.path来浏览您提供的信息。
$location.path('/task');
此/任务应映射到您的路由中。你不必担心任何事情。如下所示,
$routeProvider.when('/task', {
templateUrl : "where you wish to navigate", // This should be replaced by your need
controller : "taskController"
})