0

将此操作添加到我的路线后:

  actions: {
    willTransition() {
      this.refresh();
    }
  }

模板内所有引用嵌套路由的链接都被标记为活动的,即使它们生成具有不同动态段的 url 。

我制作了一个 Ember Twiddle 来重现该错误。它只发生在 willTransition() 动作中,而不是 redirect() 钩子。(我需要使用 willTransition 来刷新父路由。)

有一件事要提:在第一次渲染时,一切都井井有条。当 willTransition 被触发时它会中断。

有任何想法吗?:)

更新

似乎导致问题的是 this.refresh() 而不是 willTransition() 操作。

4

1 回答 1

0

我不确定这是否只是因为你把小提琴弄得很快......但你作为参数传入的模型不应该用引号引起来

{{link-to 'route.destination' 'Visual representation' model.thing}}

inline vs block // inline 总是令人困惑...如果文本的“值”是定义差异...它可能应该是第一个参数...

{{#link-to 'route.destination' model.thing}}
  <span>{{model.name}}</span>
{{/link-to}}

https://ember-twiddle.com/702ab44ba8090a50cfabda353cffc599

这个稍微构建的小提琴表明它可以正常工作......我想......让我知道。:)

编辑:我看到你在做什么段......并利用默认值 - 但也有这个错误:/paternt' did not match any routes in your application

我开始认为这种行为是正常的。它们都处于活动状态,因为您处于默认状态parent.sibling.index

我建议你把事情设置成这样,然后看看问题是否仍然存在

Router.map(function() {
  this.route('parent', function(){
    this.route('child-list' {path: '/'});
    this.route('child-detail', {path: ':thing'});
  })
});

(我一直在尝试分叉你的小玩意——但它只是重定向到我的小提琴......古怪的东西)

于 2017-08-13T22:18:58.287 回答