Ember.js动态路由器未使用序列化加载模板

Ember.js动态路由器未使用序列化加载模板,ember.js,Ember.js,我有一个路由为#/0、#/1、#/2。单击用户名时,将加载相应的模板。 但是当我单击用户名时会引发以下错误 加载路由时出错:TypeError:对象#没有方法“addArrayObserver” 但是当我直接访问url localhost:8080/dynam.html#/0时,我得到的输出是 二十五 模板: <script type="text/x-handlebars" data-template-name="application"> {{outlet}} <

我有一个路由为#/0、#/1、#/2。单击用户名时,将加载相应的模板。 但是当我单击用户名时会引发以下错误

加载路由时出错:TypeError:对象#没有方法“addArrayObserver”

但是当我直接访问url localhost:8080/dynam.html#/0时,我得到的输出是

二十五

模板:

 <script type="text/x-handlebars" data-template-name="application">
    {{outlet}}
  </script>

  <script type="text/x-handlebars" data-template-name="index">
  <h2>Names</h2>
  <ul>
  {{#each model}}
      <li>{{#linkTo "test" this}}{{this.firstName}} {{this.lastName}}{{/linkTo}}</li>
  {{/each}}
   </ul>
  </script>

  <script type="text/x-handlebars" data-template-name="test">
  <h2>Item Loaded</h2>
  {{#each model}}
      <li>{{#linkTo "test" this}} {{Age}} {{/linkTo}}</li>
  {{/each}}
  </script>

通过输入序列化路由时

{{#link-to routname model}}
模型挂钩将不会运行。相反,模型是由您在{{#link to}}助手中设置的任何输入值设置的

因此,在您编写的代码中,当您单击

{{#linkTo "test" this}}
您正在输入“测试”路径,并将模型设置为您单击的任何人。例如,如果选择第一个人,则将TestRoute的模型设置为:

{id: 0, firstName: 'Kris', lastName: 'Selden'}
现在呈现测试模板,其中包括一个{{{#each model}}助手。。。但是您的模型中只有一个对象,因此无法正确运行

另一方面,当您直接使用url输入路由时,模型挂钩将运行。这就是为什么以这种方式运行时,会得到年龄值

通常,对于序列化路径,您应该使用模型钩子来检索默认情况下通常会传入的信息。例如:

model: function(param){
    var id = param.id; //This will return the serialized portion of your url
    return someFunction(id); //Use that serialized value to look up the correct model
}

谢谢你的回复。我应该在哪里使用返回“someFunction(id)”的模型,在IndexRoute或TestRoute中,我的模型的结构应该是什么。您的模型结构应该是任何必要的。没有金本位,它只是你需要的相关信息的一个垃圾场。
model: function(param){
    var id = param.id; //This will return the serialized portion of your url
    return someFunction(id); //Use that serialized value to look up the correct model
}