search

Home  >  Q&A  >  body text

angular.js - angularjs公共头部的headController控制器如何获取路由配置中的参数?

举个例子:
应用中有三个控制器,它们是平级的关系
A控制器控制页面的head部分
B和C控制器控制详情页面和编辑页面,路由关系如下

when('/detail/:id', { templateUrl: 'tpls/detail.html', controller: "BController" }).
when('/edit/:id', { templateUrl: 'tpls/edit.html', controller: "CController" }).

现在的需求是在A控制器中要获取路由URL中的参数id,该如何获取?

我当前的实现方式:
我写了一个service,在service中写一个函数,这个函数的的作用就是用$location.path()的方式拿到当前URL,然后再使用字符串截取的方式取到参数中的id,虽然拿到了值,但是感觉不应该是这个方式

我的尝试:

曾经蜡笔没有小新曾经蜡笔没有小新2745 days ago638

reply all(5)I'll reply

  • 高洛峰

    高洛峰2017-05-15 17:03:23

    Can’t you put the ID in cookies

    reply
    0
  • phpcn_u1582

    phpcn_u15822017-05-15 17:03:23

    angular-ui exclusively gets $stateParams

    reply
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-15 17:03:23

    Inject $route
    and then $route.current.params is

    reply
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-15 17:03:23

    http://stackoverflow.com/questions/25370775/exposing-the-current-state-name-with-ui-router


    //this watches for state changes
    $rootScope.$on('$stateChangeStart', 
       function(event, toState, toParams, fromState, fromParams){
          //do something when state changes
          $yourService.state = toState.name;
          $yourService.postid = toParams.postid;
          console.log(toParams); //this is the stateParams you need
    });

    reply
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-15 17:03:23

    Inject this service into $routeParams, then

    $scope.id = $routeParams.id
    

    reply
    0
  • Cancelreply