我是新手,我真的在努力完成应该是一项相当简单的任务。
我正在尝试将简历放入ember应用程序中。 作为我简历的一部分,我有一些参考。
当有人点击导航中的“参考”链接时,我希望它显示每个参考的链接,以及显示为链接的子项的第一个参考。
显然,我的选择是重定向到'references / 1'网址(不太理想),或显示'参考'模板。
我为此构建了一个JSFiddle,但是jsfiddle似乎被破坏了,因为我无法加载或查看已经存在的任何内容。
我使用常规路由,我在其中加载引用,它显示链接,如果我单击链接,或直接使用'references / 2'网址加载页面,它会显示正确的内容。
如果我使用
重定向App.ReferencesRoute = Ember.Route.extend({ model: function(){ return App.References.find(); }, redirect: function(){ this.transitionTo('reference',App.References.find(1)); } });
我正确地重定向了url,但是我没有得到引用的链接。我确实加载了'reference'模板,但模型没有通过。我尝试过使用this.modelFor('references').get('firstObject')
,但这也没有返回任何内容,这就是我使用find(1)
的原因。
如果我尝试使用渲染模板和控制器这样做
App.ReferencesRoute = Ember.Route.extend({ model: function(){ return App.References.find(); }, renderTemplate: function(){ this.render(); this.render('reference',{into: 'references',controller:'reference'}); } }); App.ReferenceController = Ember.ObjectController.extend({ letter: 'test letter' });
我收到了链接和“测试信”信息,但我遇到了其他一些问题。
1)我无法弄清楚如何将Reference控制器传递给第一个模型,以便它实际返回的内容就像用户位于'/ references / 1'url
一样2)如果单击链接,则不会显示所选字母,这意味着如果我使用控制器,则链接不起作用。
3)我希望第一个链接处于活动状态,因为这是已经显示的字母,但与其他问题相比,这是一个小细节。
我是否完全错了?我有什么大不了的东西吗?
答案 0 :(得分:1)
通过重定向传递模型我使用类似这样的东西:
App.ReferencesIndexRoute = Ember.Route.extend({
model : function(){
return App.References.find();
},
redirect : function(){
var model = this.controllerFor('references').get('model');
this.transitionTo('reference', model);
}
});