当link只是"#"时,防止routeparams改变视图

Prevent routeparams from changing view when link is just "#"

本文关键字:quot 防止 routeparams 视图 改变 link 只是      更新时间:2023-09-26

我使用$routeParams进行以下配置:

controllersModule.config(['$routeProvider',
    function($routeProvider) {
        $routeProvider.
        when('/home', {
            templateUrl: 'views/home.html',
            controller: 'HomeController'
        }).
        when('/history', {
            templateUrl: 'views/history.html',
            controller: 'HistoryController'
        }).
        otherwise({
            redirectTo: '/home'
        });
    }
]);

可以正常工作

但是在我的页面有一些链接有href="#"。当点击这些链接时,我得到一个空白页面。
大多数这些链接会消失,而在项目上工作,因为他们只是占位符,但我仍然很好奇,如果有一些方法来防止这种情况的发生。我曾尝试从"a"标签中删除href属性,但这将删除鼠标指针(我知道我可以添加一个css规则),但我想要一个解决方案,我可能会把路由

#替换为javascript:void(0);

当浏览器跟随javascript: URI时,它计算URI,然后将页面内容替换为返回的值,除非返回值为undefined,否则您的页面保持不变并且不做任何事情。

不处理a元素

<a href="javascript:void(0);">
  Click here to do nothing
</a>
从MDN:

但是请注意,不鼓励使用javascript: pseudo协议

更新:

对于ng-href,如果数据来自$scope,值为#,则只需将#的值替换为空字符串,以便页面不会重定向到任何页面。

controller:

this.mylink = this.mylink !== '#' ? this.mylink : '';