Ember.js 将数组传递给链接到帮助器

Ember.js 将数组传递给链接到帮助器,ember.js,Ember.js,我想创建一个需要生成动力学链接的组件。我尝试将链接数据作为数组传递,但这不起作用 var user1 = get("store").find("user", 1); var data = {link: ["users.show", user1], title: "User1"}; {{#link-to data.link}}{{data.title}}{{/link-to}} 这应该等于 {{#link-to "users.show" 1}}{{data.title}}{{/link-to}

我想创建一个需要生成动力学链接的组件。我尝试将链接数据作为数组传递,但这不起作用

var user1 = get("store").find("user", 1);
var data = {link: ["users.show", user1], title: "User1"};

{{#link-to data.link}}{{data.title}}{{/link-to}}
这应该等于

{{#link-to "users.show" 1}}{{data.title}}{{/link-to}}

如何从变量生成完全动态链接?

我认为不可能传递数组,但可以直接传递每个参数,如下所示:

路线

  var user1 = this.store.find('user', 1);
  var data = { data: { link: "users.show", model: user1, title: "User1" } };
  return data;
  {{#link-to data.link data.model.id}}{{data.title}}{{/link-to}}
模板

  var user1 = this.store.find('user', 1);
  var data = { data: { link: "users.show", model: user1, title: "User1" } };
  return data;
  {{#link-to data.link data.model.id}}{{data.title}}{{/link-to}}
我希望它能有所帮助

Ember 1.13.x 链接到帮助器为您创建的对象将公开为。我在这里创建了一个使用它的示例:

params
属性是指向辅助对象的链接通常绑定位置参数的属性,尽管此处必须使用未绑定的辅助对象,因为链接组件而不是值绑定对象。此外,除非将链接文本作为数组中的第一个参数,否则必须传递
hasBlock=“true”


余烬≤ 1.12.x 虽然还没有完成,但是您可以手动公开组件,这相当于新的LinkComponent

App.XLinkToComponent = Ember.LinkView.extend();
然后像这样使用它:

{{#x-link-to params=link}}
  {{title}}
{{/x-link-to}}

使用
unbound
hasBlock=“true”
是不必要的,因为LinkView的内部逻辑与LinkComponent不同。

您可以将数组指定为
参数
参数,以链接到
帮助程序。与答案类似,但仅使用默认的
{{{link to}
帮助程序:

App.XLinkToComponent = Ember.LinkView.extend();
{{#link-to params=data.link}}{{data.title}}{{/link-to}}
…将呈现如下内容:

<a href="/users/show/1">User1</a>


(使用Ember 2.3.0进行了测试)

谢谢,但这还不够通用。如果一个链接在同一个数组2,3,…,中使用一个参数和另一个链接,该怎么办?我认为使用指向帮助器的链接是不可能的。也许可以将链接扩展到并创建一个新的,期望阵列可以工作的链接。像这样的东西
{{{#link with args data.link data.args}}{{data.title}}{{/link to}}
。我认为link to对此不起作用,您可能需要创建一个自定义帮助器,或者在控制器中使用一个函数“转换”到给定的路由。看看这里,你可以使用“识别器”来识别给定的路径,你会得到一个处理程序,然后转换到该路径。这是Ember 2.0的答案。