如果在新标签中打开,EmberJS无法显示所有内容

时间:2016-05-26 14:53:24

标签: javascript jquery ember.js

如果我运行我的应用程序并单击图像,则会打开详细信息页面并正确显示所有内容。但是,当我复制链接并将其粘贴到新标签页上或右键单击图像并在新标签页中打开时,我无法看到整个内容。您认为问题是什么?这是我的风潮。感谢

https://ember-twiddle.com/f65ee2dc539c38a104e003af289db23a?openFiles=templates.pic.hbs%2Ctemplates.components.image-list.hbs

3 个答案:

答案 0 :(得分:1)

您没有实现详细信息(pic)路由的模型挂钩。因此,当您使用{{link-to}}帮助程序进行转换时,它会起作用,因为您将模型向下传递,但如果直接深入输入详细信息路径,它就无法工作。

答案 1 :(得分:1)

基本上,概念是当我们通过传递对象的id来使用链接到助手时调用的模型钩子,因为我使用下面的链接到助手。如果我们传递完整的模型对象,则模型钩子会被忽略。 当我们在浏览器中直接输入url时,也会调用模型钩子。所以问题是,当你在浏览器中输入url而不是模型钩子时,在模型钩子中你没有返回pic的模型。所以你面临着问题。解决方案是 将组件模板中的行{{#link-to "pic" pic}}更改为此

{{#link-to "pic" pic.id}} 

现在你的模型钩子会在每次转换时调用。

并以这种方式在你的pic路线中定义了模型钩子

 model(params) {
       this.store.findRecord('image', params.pic_id)
    }

并按照此this.route('pic',{path:'/news/:pic_id'})

更改路由器

答案 2 :(得分:1)

你应该考虑这个要求的ember-data,比如lux和ateek说.. 暂时我使用服务解决了你的问题..看看twidde