Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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
Javascript Ember.js:如何表示一个具有多个模型的关系?_Javascript_Ember.js_Relationship - Fatal编程技术网

Javascript Ember.js:如何表示一个具有多个模型的关系?

Javascript Ember.js:如何表示一个具有多个模型的关系?,javascript,ember.js,relationship,Javascript,Ember.js,Relationship,我正试图建立一个余烬应用程序,我有很多项目,所有这些都有很多选择。然后,我需要一个“仪表板”区域,在那里我可以监控所有项目/选项的信息 在中,我得到了一个仪表板的工作示例,它监视单个项目集合。 如何更新此项以表示每个项目的子选项? Javascript- 把手 <script type="text/x-handlebars" data-template-name="application"> <p><strong>Ember.js example<

我正试图建立一个余烬应用程序,我有很多项目,所有这些都有很多选择。然后,我需要一个“仪表板”区域,在那里我可以监控所有项目/选项的信息

在中,我得到了一个仪表板的工作示例,它监视单个项目集合。
如何更新此项以表示每个项目的子选项?

Javascript-

把手

 <script type="text/x-handlebars" data-template-name="application">
  <p><strong>Ember.js example</strong><br>Using an a dashboard that monitors 'items'.</p>
    {{render dashboard}}
    {{outlet}}
  </script>

  <script type="text/x-handlebars" data-template-name="items">
    <h2>Items:</h2>
    <dl>
      {{#each}}
        <dt>Title: {{title}}</dt>
        <dd>Cost: {{cost}} {{input value=cost}}</dd>
      {{/each}}
    </dl>
  </script>

  <script type="text/x-handlebars" data-template-name="dashboard">
    <h2>Overview:</h2>
    {{#if controllers.items}}
    <p>Total number of items (expect 3): {{itemsLength}}<br>
    Total cost of items (expect 600): {{itemsTotalCost}}</p>
    {{/if}}
  </script>

Ember.js示例
使用监控“项目”的仪表板

{{render dashboard}} {{outlet}} 项目: {{{#各} 标题:{{Title}} 成本:{{Cost}}{{input value=Cost}} {{/每个}} 概述: {{{#if controllers.items} 项目总数(除3项外):{{itemsLength}}
项目总成本(预计600):{{itemsTotalCost}

{{/if}
首先,我建议使用客户端记录管理框架,如ember data/ember模型,它们有点像学习曲线,但从长远来看非常棒。如果您不想这样做,您可以遵循创建模型时已经建立的相同模式


我无法让仪表板以与监视项目相同的方式监视选项。它看起来像控制器。选项不存在-为什么会存在?因为您从未创建过使用选项控制器的任何东西。你想在仪表板上完成什么?所有项目中所有选项的计数?从items控制器中获取项目,并对其进行迭代,计算选项。仪表板将需要来自items&options的所有数据,以便可以进行各种计算。重要的是,它还需要在某些项目/选项属性更改时更新。我认为通过项目访问选项不允许仪表板观察选项更改。这是真的吗?当然,只需在监视选项的项级别和监视项的项控制器级别添加一个computed属性,如果不定义项控制器,它只会迭代模型中的项(它从控制器向下代理)
 <script type="text/x-handlebars" data-template-name="application">
  <p><strong>Ember.js example</strong><br>Using an a dashboard that monitors 'items'.</p>
    {{render dashboard}}
    {{outlet}}
  </script>

  <script type="text/x-handlebars" data-template-name="items">
    <h2>Items:</h2>
    <dl>
      {{#each}}
        <dt>Title: {{title}}</dt>
        <dd>Cost: {{cost}} {{input value=cost}}</dd>
      {{/each}}
    </dl>
  </script>

  <script type="text/x-handlebars" data-template-name="dashboard">
    <h2>Overview:</h2>
    {{#if controllers.items}}
    <p>Total number of items (expect 3): {{itemsLength}}<br>
    Total cost of items (expect 600): {{itemsTotalCost}}</p>
    {{/if}}
  </script>