Javascript 指向帮助程序的链接存在问题

Javascript 指向帮助程序的链接存在问题,javascript,ember.js,Javascript,Ember.js,我正在制作一份简单的餐厅菜单,我有一个这样的代码,很好用: <script type="text/x-handlebars" data-template-name="application"> <h1> Categories </h1> {{#each}} {{#link-to "dish" this.id}} {{name}} {{/link-to}} </br> {{/e

我正在制作一份简单的餐厅菜单,我有一个这样的代码,很好用:

  <script type="text/x-handlebars" data-template-name="application">
      <h1> Categories </h1>
      {{#each}}
        {{#link-to "dish" this.id}} {{name}} {{/link-to}} 
        </br>
      {{/each}}
      {{outlet}}
  </script>

类别
{{{#各}
{{{#链接到“dish”this.id}{{{name}{{{/link to}}

{{/每个}} {{outlet}}
它可以工作,但我仍然不明白为什么要将
this.id
传递到
链接的参数。首先,我刚刚将
这个
传递给了帮助程序,但它不起作用(为什么?),只有经过一段时间的调试,我才使它与
这个.id
一起工作

所以问题是,为什么它与
this.id
一起工作,而与
this
不工作?到目前为止,我看到的所有示例都使用了
this
,那么使用
this.id
是一种好方法吗?请解释


这是它与
this.id
一起工作的完整代码

,因为
{{link to}}
帮助程序可以执行以下操作:

  • 路由的名称。在这种情况下,它将是
    “dish”
  • 每个动态段最多一个模型
  • 将绑定到
    a
    title属性的可选标题
当您将模型传递给路由时,它不会从远程服务器获取模型数据,而是按“原样”传递给控制器

如果将id传递给帮助器,它将确保以id作为参数运行路由的模型挂钩,从而检索模型的数据

发生的情况是,在您的代码中,您传递的是
这个
,它是一个
类别
模型。
DishRoute
适用于
Dish
型号,因此它根本不起作用

如果您传递
this.id
,它会起作用,因为它是一个整数,并且Ember将获取一个
Dish
,该盘恰好具有与
Category
实例
设置为相同的
id


如果有疑问,请阅读官方文档()

它与
this.id
一起工作,因为
{{link to}}
帮助程序可以执行以下操作:

  • 路由的名称。在这种情况下,它将是
    “dish”
  • 每个动态段最多一个模型
  • 将绑定到
    a
    title属性的可选标题
当您将模型传递给路由时,它不会从远程服务器获取模型数据,而是按“原样”传递给控制器

如果将id传递给帮助器,它将确保以id作为参数运行路由的模型挂钩,从而检索模型的数据

发生的情况是,在您的代码中,您传递的是
这个
,它是一个
类别
模型。
DishRoute
适用于
Dish
型号,因此它根本不起作用

如果您传递
this.id
,它会起作用,因为它是一个整数,并且Ember将获取一个
Dish
,该盘恰好具有与
Category
实例
设置为相同的
id


如果有疑问,请阅读官方文档()

查看您的代码,我看到您正在迭代类别集合,然后将
传递给
{{link to}
帮助程序。那不应该起作用
DishRoute
需要一个
Dish
模型,您正在传递一个
类别
模型。查看您的代码,我看到您正在迭代类别集合,然后将
传递给
{link to}
帮助程序。那不应该起作用
DishRoute
需要一个
Dish
模型,您正在传递一个
类别
模型。