Forms Ember Js嵌套表单
目前我有一个名为“FormA”的表单,我已经为此表单创建了许多视图,一个编辑、创建和列表。我希望能够创建一个名为“form B”的表单,该表单将“form a的ID”作为父ID。以使我能够在“form a”(基本的一对多关系)下拥有所有form B的列表。因此,目前在我的“表格A”列表下,每个项目都有以下链接:Forms Ember Js嵌套表单,forms,ember.js,ember-data,Forms,Ember.js,Ember Data,目前我有一个名为“FormA”的表单,我已经为此表单创建了许多视图,一个编辑、创建和列表。我希望能够创建一个名为“form B”的表单,该表单将“form a的ID”作为父ID。以使我能够在“form a”(基本的一对多关系)下拥有所有form B的列表。因此,目前在我的“表格A”列表下,每个项目都有以下链接: {{#link-to 'form-a.form-b.listing' form-a.id}} <!--Link to a controller --> <s
{{#link-to 'form-a.form-b.listing' form-a.id}} <!--Link to a controller -->
<span class="btn btn-primary"> form b </span>
{{/link-to}}
因此,我正试图通过表单a的Id进行列表。然而,我有点被困在这里,因为我不确定下一步该怎么做,以及如何正确地完成列表控制器中的“form a”Id,并将其用作每个“form B”的父Id。有没有更好的方法使嵌套表单具有一个或多个关系,或者我是以最好的方式进行的
我希望有人能帮助我解决这个问题,因为我碰到了编码墙。如果您需要任何澄清,请询问,因为我知道我通常不擅长描述我的问题。这篇文章适用于Ember 2.x.x,写于2.15
我认为对您有很大帮助的是paramsFor()
很难说什么是“正确的”路由结构,因为您的UI会在某种程度上决定事情,我不确定确切的URL有多重要
下面是我将如何设置路线,假设有多个表单a的时间
this.route('form-as', function() {
this.route('form-a', {path: '/:form-a_id'}, function() {
this.route('new');
this.route('listing');
this.route('edit');
this.route('form-b', function() {
this.route('listing', {path: '/listing'});
this.route('new');
});
});
});
在上面的代码中,form a下的new、listing和edit将可以通过routes的model hook中的params
访问form a id:
model(params) {
console.log(params['form-a_id'])
// using the [] accessor since dashes don't work for normal dictionary nav
}
在form b段中,listing和new可以访问form-a参数,如下所示:
model() {
console.log(this.paramsFor('form-as.form-a'))
}
注意那些dasherized id和模型名。它们很可能是bug的来源,我不能100%确定我就在这里找到了它们。我避开他们
有关()参数的更多信息,请参阅指南和中的
model() {
console.log(this.paramsFor('form-as.form-a'))
}