Javascript 余烬模型未使用链接动态绑定到

Javascript 余烬模型未使用链接动态绑定到,javascript,ember.js,ember-cli,ember.js-2,Javascript,Ember.js,Ember Cli,Ember.js 2,我创建了一个余烬演示,一个父视图和它的子视图 这是父视图 <h1>A list of Todo Tasks</h1> <ul> {{#each model as |todo|}} <li>{{#link-to "todos.details" todo}}{{todo.desc}}{{/link-to}}</li> {{/each}} </ul> {{outlet}} 但是当我使用链接导航时,除非我刷新页面,否则数据不会显

我创建了一个余烬演示,一个父视图和它的子视图 这是父视图

<h1>A list of Todo Tasks</h1>
<ul>
{{#each model as |todo|}}
<li>{{#link-to "todos.details" todo}}{{todo.desc}}{{/link-to}}</li>
{{/each}}
</ul>

{{outlet}}
但是当我使用链接导航时,除非我刷新页面,否则数据不会显示 这是子视图

<h2>The Details for <span style="color: green;">{{model.name}}</span> is : </h2>
{{#if model.error}}
<p>{{model.message}}</p>
{{else}}
<ul>
 {{#each model.steps as |task|}}
    <li>{{task.do}}</li>
    {{/each}}
</ul>
{{/if}}

{{outlet}} 
iam使用ember 2.5,这是路由器的一部分

this.route('todos', function() {
    this.route('details',{path : "/:id"});
  });
由于您提供的是对象
todo
,因此它不会执行模型挂钩。 所以试试看

请参阅:

注意:具有动态管段的管线将始终具有其模型挂钩 通过URL输入时调用。如果路线是通过 过渡(例如,使用“链接到把手”辅助对象时)和 提供模型上下文(链接到的第二个参数),然后提供钩子 没有执行。如果提供了标识符(如id或slug) 然后将执行模型挂钩


确认,这里有视频。很抱歉。就我而言,这是一个小小的口误,我应该在视频的评论中解决这个问题,并尝试修改它。抱歉搞混了!D:

非常感谢,非常好地工作,问题是在这段视频中发送的对象执行了模型挂钩。区别是什么?该教程几乎没有误导性,实际上在该教程中,
todos.show
显示的是
todos
模型,而不是
todos.show
模型。由于两者的数据相同,因此我们无法确定差异。。看看哪个演示问题我得到了它,因为本教程中的模型是同一个模型,ember可以找出如何制作模型挂钩,如果没有,我应该显式发送Id。没问题@kumkanillam声明它很好顺便说一句,我喜欢基本原理:D@Abdoutelb请随时通过电子邮件与我联系,并提供更多反馈,你可以通过iheanyi.com找到我,或者直接在推特上给我发DM!twitter.com/kwuchu
import Ember from 'ember';

export default Ember.Route.extend({
    model(params){

        if(params.id == "1"){
            return {
                name : "Ember SetUp",
                steps : [{
                    id :1,
                    do : "Download Ember Cli"
            },
            {
                    id :2,
                    do : "Generate New Project"
            },
            {
                    id :3,
                    do : "Generate Pages&Routes"
            }
                ]
            };
        }
        else{
            return {
                error : true,
                name : "Not Found",
                message : "There is no task with this id"
            }
        }
    }
});
this.route('todos', function() {
    this.route('details',{path : "/:id"});
  });
{{#link-to "todos.details" todo}}
{{#link-to "todos.details" todo.id}}