加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular-ui-router – 如何设置强制路由参数

发布时间:2020-12-17 18:02:57 所属栏目:安全 来源:网络整理
导读:我想制作一个有强制参数的路线.如果没有,它应该落入 $urlRouterProvider.otherwise( “/家”); 目前的路线: function router($stateProvider) { $stateProvider.state("settings",{ url: "^/settings/{id:int}",views: { main: { controller: "SettingsCont
我想制作一个有强制参数的路线.如果没有,它应该落入

$urlRouterProvider.otherwise( “/家”);

目前的路线:

function router($stateProvider) {
        $stateProvider.state("settings",{
            url: "^/settings/{id:int}",views: {
                main: {
                    controller: "SettingsController",templateUrl: "settings.html"
                }
            }
        });
    }

目前以下两条路线均有效:

> http://myapp/settings //应该是无效的路线
> http://myapp/settings/123

有任何想法吗?

解决方法

使用 state change start listener检查params是否通过:

$rootScope.$on('$stateChangeStart',function (event,toState,toParams,fromState,fromParams) {
      if(toState.name==="settings")
      {
          event.preventDefault(); //stop state change
          if (toParams.id===undefined)
           $state.go("home");
          else
           $state.go(toState,toParams);

      }
  });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读