Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms Ember Js嵌套表单_Forms_Ember.js_Ember Data - Fatal编程技术网

Forms Ember Js嵌套表单

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

目前我有一个名为“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 -->
      <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'))
}