从`model`发送多个值到`template.hbs` - ember方式

时间:2018-01-08 05:41:27

标签: ember.js

在发送到模板之前,我正在寻找正确的ember推荐方法来对数据值进行分组。

因为我有2个不同数组的数据。

我不想在应用程序中保留no.of迭代器。所以我想在新创建/创建的数组中分组数据或者是ember建议的正确方法。任何人帮助我?

我的模特:(样本)

import Ember from 'ember';

export default Ember.Route.extend({
  model(){
    return {
        "data" : {
        "group" : [{"group":"newGroup"}, {"group":"oldGroup"}],
        "details" : [{"name":"arif","age":"3"},                 {"name":"afi","age":"2"}]
      }
    }
  }
});

my hbs:/ {{data.data.group}} - 如何显示?通过相等的数组值? /

{{#each model.data.details as |data| }}
    <li>{{data.data.group}} {{data.name}} -- {{data.age}} </li>
{{/each}}
</ul>

Live Demo

2 个答案:

答案 0 :(得分:3)

您可以使用$("#demo").on("countrychange", function(e, countryData) { var name = countryData.name; var cod = countryData.dialCode; var iso2 = countryData.iso2; }); $("#demo").intlTelInput({ allowDropdown: true, autoHideDialCode: false, autoPlaceholder: "off", dropdownContainer: "body", formatOnDisplay: false, geoIpLookup: function(callback) { $.get("http://ipinfo.io", function() {}, "jsonp").always(function(resp) { var countryCode = (resp && resp.country) ? resp.country : ""; callback(countryCode); }); }, hiddenInput: "full_number", initialCountry: "auto", nationalMode: false, placeholderNumberType: "MOBILE", preferredCountries:[''], separateDialCode: false, utilsScript: "intl-tel-input-master/build/js/utils.js" }); 数组的当前索引访问group数组:

details

答案 1 :(得分:0)

我是否理解正确,您要将相应的组显示给详细数据集?如果是这样,您希望显示该组的方式无效,因为您现在尝试访问时没有model.data.details.data.group。请记住,您的每个循环中的数据都是model.data.details

的“参考”

我强烈建议您重组数据集,以便在组和详细信息之间建立连接。现在,我可以判断是否有... ...

将此视为新的数据结构:

{
  data: {
    groups: {
      newGroup: {
        name: "arif",
        age: 3
      },
      oldGroup: {
        name: "afi",
        age: 2
      }
    }
  }
}

然后你可以像这样迭代这个结构

{{#each-in data.groups as |groupName details|}}
  {{#each details as |data|}}
    {{groupName}} {{data.name}} - {{data.age}}
  {{/each}}
{{/each-in}}

另外,作为一个侧节点,在我看来,您希望在您的应用中多次使用此数据。如果是这样,请考虑使用service,并在要访问它的每个组件中重复使用该服务 在组件js文件中,您可以设置一个计算属性来访问服务中的数据。