仅在路由配置中的链接上使用ngRoute

时间:2015-08-04 22:41:33

标签: javascript jquery angularjs

我们说我配置了两条路由,另外还有一个单独的控制器选项。

$routeProvider.
when('/careers/all', {
    title : 'All Careers',
    templateUrl: '/_get/html/listing,careers_app?action=all',
    controller: 'careersController',
    animation: 'slide'
}).
when('/careers/view/:job*', {
    title : '',
    controller: 'careersController',
    animation: 'slide'
}).otherwise({
    template : ' ',
    controller : 'redirectController'
});
// use the HTML5 History API
$locationProvider.html5Mode(true);

我只是想要处理其他所有内容,以便它作为一个标准锚点行为,我看到其他人已经添加了一个target="_self"到锚点以使其工作,但这是完全不切实际的,因为我有数以百计的主持人和我不是唯一一个管理这个网站的人。我需要让这个控制器重定向,但显然不是只是连续循环,因为页面刷新,然后激活,然后页面再次刷新,所以我创建了一个递归刷新。

控制器:

_core.controller('redirectController', ['$location', '$window', '$rootScope', function($location, $window, $rootScope) {
    var path = $location.path();
    $window.location.href = path;
}]);

如何设置它,是否有一种方法可以在设置路径路径名之前进行检测?我知道有一个事件$routeChangeStart但是在运行此回调之前已经设置了路径。

想法?

2 个答案:

答案 0 :(得分:0)

我认为这就是你要找的东西。根据我的理解,你假装保持锚的正常行为,同时仍然保持pushstate工作。

这是我的方法: http://jsbin.com/kafoxu/1/edit

我希望它有所帮助

答案 1 :(得分:0)

我通过完全删除其他选项来实现此目的。并将事件监听器添加到08-04 20:00:36.387 31451-2716/? E/AppInviteAgent﹕ Get suggested invitees failed due to error code: 13 08-04 20:00:54.636 31451-3312/? E/AppInviteAgent﹕ Create invitations failed due to error code: 13 服务。

$location

因为我只有两条路线,都包含职业/在网址中,我只是检查是否是职业页面,或者我们已经在页面上试图改变,所以不要t更新,否则触发刷新。