Ember.js 带有动态上下文的{{{链接到‘;路由名称’;}}

Ember.js 带有动态上下文的{{{链接到‘;路由名称’;}},ember.js,Ember.js,是否可以将带有动态上下文参数的链接作为单个变量使用 当有一个动态部分时,这就可以工作了,但在下面的示例中,我有post category id和post id。是否可以动态传入这些参数。它试图将它们作为数组或字符串传递,但这不起作用 在这个例子中,我想{{#link to“post”params}}其中post嵌套在post类别中。我的目标是使用所需的2个上下文参数传入参数 // router this.resource('post-categories', {path: 'post-categ

是否可以将带有动态上下文参数的链接作为单个变量使用

当有一个动态部分时,这就可以工作了,但在下面的示例中,我有
post category id
post id
。是否可以动态传入这些参数。它试图将它们作为数组或字符串传递,但这不起作用

在这个例子中,我想
{{#link to“post”params}}
其中post嵌套在post类别中。我的目标是使用所需的2个上下文参数传入参数

// router
this.resource('post-categories', {path: 'post-categories/:post-category-id'}, function() {
  this.resource('post', {path: 'post/:post-id'})
});

// controller
...
  params: Em.computed(function() {
    return [1, 4]
  })
...

// template
{{#link-to "post" params}}

<>我试图在源代码中阅读,但这并没有太大帮助。

< P>不,它会考虑使用该模型作为其中一条路径。最好使用两个动态属性

{{link-to 'My Post' 'post' p1 p2}}

不,不是作为单个变量。但是,您可以通过在同一对象下传递两个值来实现您的目标(如果我理解正确的话)

因此,在您的示例中,您必须将params属性更改为以下内容:

params: Em.computed(function() {
  return { params: { catId: 1, postId: 4 } };
})
然后将参数作为两个动态属性传递到完整路径:

{{#link-to "post-categories.post" params.catId params.postId}}

好的,我的解决方案通过控制器上的一个动作。 在这个动作中,我用所需数量的动态部件检查参数和开关盒的长度
transitionorroute
。虽然不是很干

switch (params.length) {
  case 0: 
    this.transitionToRoute(route.get('routeName'))
  break;
  case 1: 
    this.transitionToRoute(route.get('routeName'), params[0])
  break;
  case 2: 
    this.transitionToRoute(route.get('routeName'), params[0], params[1])
  break;
  case 3: 
    this.transitionToRoute(route.get('routeName'), params[0], params[1], params[2])
}

我的目标是只传入一个包含0,1,2。。。参数取决于路由预期的内容。预期的参数总是正确的,没有什么需要注意的。有可能通过TransitionRoute吗?据我所知,
TransitionRoute
不会更好。那些参数代表什么?在我看来,通过发送链接到的资源树的顶部模型,并通过模型关联处理子参数,
{{{link to“post”post}
,您可以实现您的目标。然后,您可以在所点击的每条路线中处理post的参数关联。这些参数代表路线的动态段。我将这些路线存储在一个单独的控制器中,希望用户能够导航到一条路线。我有routeName+动态部分,只有我的动态部分以变量的形式存在。这个变量可以转换成任何可以工作的变量,例如“13”,“1”“3”[1,3],但我尝试了这些解决方案。