Angular UI路由器-尽管$stateParams获取对象,但不填充参数

Angular UI-router - Not populating params despite $stateParams get object

本文关键字:取对象 参数 填充 获取 stateParams 路由器 UI 尽管 Angular      更新时间:2023-09-26

Im使用角度和角度路由器ui。我想利用动态url参数。

这就是我使用它的方式:

          .state('index.domain', {
            url: '/domain',
            template: "<div ui-view> Home Domain page </div>"
          })
            .state('index.domain.id', {
              url: '/:domainId',
              resolve: {
                domainId: function($stateParams){
                  return $stateParams.domainId;
                }
              },
              templateUrl: "./development/administration/domain.html",
              controller: function(domainId){
                console.log(domainId);
              }
            })

我用以下调用调用路由:

$state.go('index.domain.id', {"domainId": domainId});

确实执行了解析,$stateParams获取了一个domainId为的对象。尽管如此,它不会进入控制器。URL/:domainId也没有更改。

如果我在浏览器中更改URL以指向URL/RANDOM_DOMAIN_ID(其中RANDOM_ID是domainId有效数字),它将执行解析并转到控制器

我是不是在$state.go通话中遗漏了什么?

有一个工作的plunker

我使用了上面的状态定义如下:

.state('index', {
    url: '/index',
    template: "<div ui-view> Index </div>"
  })
.state('index.domain', {
    url: '/domain',
    template: "<div ui-view> Home Domain page </div>"
 }) 
.state('index.domain.id', {
  url: '/:domainId',
  resolve: {
    domainId: function($stateParams){
      return $stateParams.domainId;
    }
  },
  templateUrl: "development/administration/domain.html",
  controller: function(domainId){
    console.log(domainId);
  }
})

在主叫端只做了一些调整——这是有效的:

<a ui-sref="index.domain.id({domainId: 1})">...
<button ng-click="$state.go('index.domain.id', {domainId: 22});">...

在此处检查