处理以下情况的最佳方法是什么:
我有一条处理创建某种类型的新记录的路线:
e.g。
App.ContactNewRoute = Ember.Route.extend({
model: function(controller){
return App.Contact.createRecord();
}
})
我希望能够通过简单地链接到此路线来访问此路线:
{{#linkTo contact.new}}New Contact{{/linkTo}}
联系人是具有公司财产的模型:
App.Contact = App.Person.extend({
company: DS.belongsTo('App.Company'),
});
但我还希望能够预设联系人,以便在创建新联系人时默认设置此公司,并且默认情况下未指定默认值。
我怎样才能做到这一点?我可以创建一条新路线,但那么分享标记的最佳方式是什么?我应该使用partial来共享共同标记吗?
我认为的一种方法是创建一个可以像这样设置公司属性的动作:
App.IndexRoute = Ember.Route.extend({
events: {
contactFromCompany: function(company){
this.modelFor('contactNew').set('company', company);
this.transitionTo('contact.new');
},
},
但是如果模型尚未设置,则model返回undefined,除非之前已经访问过该路径,我不确定这是不是一个好主意。
我创建了这个显示问题的fiddle。
我可以创建另一条路线,如this,但两种情况都不是很好。另一种解决方案是覆盖设置上下文的路由的设置方法。
我认为这是一个相当普遍的情况,有一个共同的方式会很好。