2017-08-25 70 views
0

我有灰烬路由处理,看起来像这样:灰烬查询一遍又重复同样的战绩结束

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model(params) { 
    return Ember.RSVP.hash({ 
     account: this.store.findRecord('account', params.id), 
     timeZones: this.store.query('time-zone', {}), 
     users: this.store.query('user', { by_account_id: params.id }) 
    }); 
    } 
}); 

我也有一个模板,这样处理:即使

each timeZones as |timeZone| 
    ' {{timeZone.name}} {{timeZone.identifier}} {{timeZone.offset}}, 

我可以告诉服务器返回正确的东西— 149个时区—我的模板只显示这149个时区中的最后一个重复149次。

这个问题的原因是什么?

编辑

如果有帮助,下面是来自服务器的响应:

{"time_zones":[{"name":"American Samoa","identifier":"Pacific/Pago_Pago","offset":"-11:00"},{"name":"International Date Line West","identifier":"Pacific/Midway","offset":"-11:00"},{"name":"Midway Island","identifier":"Pacific/Midway","offset":"-11:00"},{"name":"Hawaii","identifier":"Pacific/Honolulu","offset":"-10:00"},{"name":"Alaska","identifier":"America/Juneau","offset":"-09:00"},{"name":"Pacific Time (US \u0026 Canada)","identifier":"America/Los_Angeles","offset":"-08:00"},{"name":"Tijuana","identifier":"America/Tijuana","offset":"-08:00"},{"name":"Arizona","identifier":"America/Phoenix","offset":"-07:00"},{"name":"Chihuahua","identifier":"America/Chihuahua","offset":"-07:00"},{"name":"Mazatlan","identifier":"America/Mazatlan","offset":"-07:00"},{"name":"Mountain Time (US \u0026 Canada)","identifier":"America/Denver","offset":"-07:00"},{"name":"Central America","identifier":"America/Guatemala","offset":"-06:00"},{"name":"Central Time (US \u0026 Canada)","identifier":"America/Chicago","offset":"-06:00"},{"name":"Guadalajara","identifier":"America/Mexico_City","offset":"-06:00"},{"name":"Mexico City","identifier":"America/Mexico_City","offset":"-06:00"},{"name":"Monterrey","identifier":"America/Monterrey","offset":"-06:00"},{"name":"Saskatchewan","identifier":"America/Regina","offset":"-06:00"},{"name":"Bogota","identifier":"America/Bogota","offset":"-05:00"},{"name":"Eastern Time (US \u0026 Canada)","identifier":"America/New_York","offset":"-05:00"},{"name":"Indiana (East)","identifier":"America/Indiana/Indianapolis","offset":"-05:00"},{"name":"Lima","identifier":"America/Lima","offset":"-05:00"},{"name":"Quito","identifier":"America/Lima","offset":"-05:00"},{"name":"Atlantic Time (Canada)","identifier":"America/Halifax","offset":"-04:00"},{"name":"Caracas","identifier":"America/Caracas","offset":"-04:00"},{"name":"Georgetown","identifier":"America/Guyana","offset":"-04:00"},{"name":"La Paz","identifier":"America/La_Paz","offset":"-04:00"},{"name":"Santiago","identifier":"America/Santiago","offset":"-04:00"},{"name":"Newfoundland","identifier":"America/St_Johns","offset":"-03:30"},{"name":"Brasilia","identifier":"America/Sao_Paulo","offset":"-03:00"},{"name":"Buenos Aires","identifier":"America/Argentina/Buenos_Aires","offset":"-03:00"},{"name":"Greenland","identifier":"America/Godthab","offset":"-03:00"},{"name":"Montevideo","identifier":"America/Montevideo","offset":"-03:00"},{"name":"Mid-Atlantic","identifier":"Atlantic/South_Georgia","offset":"-02:00"},{"name":"Azores","identifier":"Atlantic/Azores","offset":"-01:00"},{"name":"Cape Verde Is.","identifier":"Atlantic/Cape_Verde","offset":"-01:00"},{"name":"Casablanca","identifier":"Africa/Casablanca","offset":"+00:00"},{"name":"Dublin","identifier":"Europe/Dublin","offset":"+00:00"},{"name":"Edinburgh","identifier":"Europe/London","offset":"+00:00"},{"name":"Lisbon","identifier":"Europe/Lisbon","offset":"+00:00"},{"name":"London","identifier":"Europe/London","offset":"+00:00"},{"name":"Monrovia","identifier":"Africa/Monrovia","offset":"+00:00"},{"name":"UTC","identifier":"Etc/UTC","offset":"+00:00"},{"name":"Amsterdam","identifier":"Europe/Amsterdam","offset":"+01:00"},{"name":"Belgrade","identifier":"Europe/Belgrade","offset":"+01:00"},{"name":"Berlin","identifier":"Europe/Berlin","offset":"+01:00"},{"name":"Bern","identifier":"Europe/Berlin","offset":"+01:00"},{"name":"Bratislava","identifier":"Europe/Bratislava","offset":"+01:00"},{"name":"Brussels","identifier":"Europe/Brussels","offset":"+01:00"},{"name":"Budapest","identifier":"Europe/Budapest","offset":"+01:00"},{"name":"Copenhagen","identifier":"Europe/Copenhagen","offset":"+01:00"},{"name":"Ljubljana","identifier":"Europe/Ljubljana","offset":"+01:00"},{"name":"Madrid","identifier":"Europe/Madrid","offset":"+01:00"},{"name":"Paris","identifier":"Europe/Paris","offset":"+01:00"},{"name":"Prague","identifier":"Europe/Prague","offset":"+01:00"},{"name":"Rome","identifier":"Europe/Rome","offset":"+01:00"},{"name":"Sarajevo","identifier":"Europe/Sarajevo","offset":"+01:00"},{"name":"Skopje","identifier":"Europe/Skopje","offset":"+01:00"},{"name":"Stockholm","identifier":"Europe/Stockholm","offset":"+01:00"},{"name":"Vienna","identifier":"Europe/Vienna","offset":"+01:00"},{"name":"Warsaw","identifier":"Europe/Warsaw","offset":"+01:00"},{"name":"West Central Africa","identifier":"Africa/Algiers","offset":"+01:00"},{"name":"Zagreb","identifier":"Europe/Zagreb","offset":"+01:00"},{"name":"Athens","identifier":"Europe/Athens","offset":"+02:00"},{"name":"Bucharest","identifier":"Europe/Bucharest","offset":"+02:00"},{"name":"Cairo","identifier":"Africa/Cairo","offset":"+02:00"},{"name":"Harare","identifier":"Africa/Harare","offset":"+02:00"},{"name":"Helsinki","identifier":"Europe/Helsinki","offset":"+02:00"},{"name":"Istanbul","identifier":"Europe/Istanbul","offset":"+02:00"},{"name":"Jerusalem","identifier":"Asia/Jerusalem","offset":"+02:00"},{"name":"Kaliningrad","identifier":"Europe/Kaliningrad","offset":"+02:00"},{"name":"Kyiv","identifier":"Europe/Kiev","offset":"+02:00"},{"name":"Pretoria","identifier":"Africa/Johannesburg","offset":"+02:00"},{"name":"Riga","identifier":"Europe/Riga","offset":"+02:00"},{"name":"Sofia","identifier":"Europe/Sofia","offset":"+02:00"},{"name":"Tallinn","identifier":"Europe/Tallinn","offset":"+02:00"},{"name":"Vilnius","identifier":"Europe/Vilnius","offset":"+02:00"},{"name":"Baghdad","identifier":"Asia/Baghdad","offset":"+03:00"},{"name":"Kuwait","identifier":"Asia/Kuwait","offset":"+03:00"},{"name":"Minsk","identifier":"Europe/Minsk","offset":"+03:00"},{"name":"Moscow","identifier":"Europe/Moscow","offset":"+03:00"},{"name":"Nairobi","identifier":"Africa/Nairobi","offset":"+03:00"},{"name":"Riyadh","identifier":"Asia/Riyadh","offset":"+03:00"},{"name":"St. Petersburg","identifier":"Europe/Moscow","offset":"+03:00"},{"name":"Volgograd","identifier":"Europe/Volgograd","offset":"+03:00"},{"name":"Tehran","identifier":"Asia/Tehran","offset":"+03:30"},{"name":"Abu Dhabi","identifier":"Asia/Muscat","offset":"+04:00"},{"name":"Baku","identifier":"Asia/Baku","offset":"+04:00"},{"name":"Muscat","identifier":"Asia/Muscat","offset":"+04:00"},{"name":"Samara","identifier":"Europe/Samara","offset":"+04:00"},{"name":"Tbilisi","identifier":"Asia/Tbilisi","offset":"+04:00"},{"name":"Yerevan","identifier":"Asia/Yerevan","offset":"+04:00"},{"name":"Kabul","identifier":"Asia/Kabul","offset":"+04:30"},{"name":"Ekaterinburg","identifier":"Asia/Yekaterinburg","offset":"+05:00"},{"name":"Islamabad","identifier":"Asia/Karachi","offset":"+05:00"},{"name":"Karachi","identifier":"Asia/Karachi","offset":"+05:00"},{"name":"Tashkent","identifier":"Asia/Tashkent","offset":"+05:00"},{"name":"Chennai","identifier":"Asia/Kolkata","offset":"+05:30"},{"name":"Kolkata","identifier":"Asia/Kolkata","offset":"+05:30"},{"name":"Mumbai","identifier":"Asia/Kolkata","offset":"+05:30"},{"name":"New Delhi","identifier":"Asia/Kolkata","offset":"+05:30"},{"name":"Sri Jayawardenepura","identifier":"Asia/Colombo","offset":"+05:30"},{"name":"Kathmandu","identifier":"Asia/Kathmandu","offset":"+05:45"},{"name":"Almaty","identifier":"Asia/Almaty","offset":"+06:00"},{"name":"Astana","identifier":"Asia/Dhaka","offset":"+06:00"},{"name":"Dhaka","identifier":"Asia/Dhaka","offset":"+06:00"},{"name":"Novosibirsk","identifier":"Asia/Novosibirsk","offset":"+06:00"},{"name":"Urumqi","identifier":"Asia/Urumqi","offset":"+06:00"},{"name":"Rangoon","identifier":"Asia/Rangoon","offset":"+06:30"},{"name":"Bangkok","identifier":"Asia/Bangkok","offset":"+07:00"},{"name":"Hanoi","identifier":"Asia/Bangkok","offset":"+07:00"},{"name":"Jakarta","identifier":"Asia/Jakarta","offset":"+07:00"},{"name":"Krasnoyarsk","identifier":"Asia/Krasnoyarsk","offset":"+07:00"},{"name":"Beijing","identifier":"Asia/Shanghai","offset":"+08:00"},{"name":"Chongqing","identifier":"Asia/Chongqing","offset":"+08:00"},{"name":"Hong Kong","identifier":"Asia/Hong_Kong","offset":"+08:00"},{"name":"Irkutsk","identifier":"Asia/Irkutsk","offset":"+08:00"},{"name":"Kuala Lumpur","identifier":"Asia/Kuala_Lumpur","offset":"+08:00"},{"name":"Perth","identifier":"Australia/Perth","offset":"+08:00"},{"name":"Singapore","identifier":"Asia/Singapore","offset":"+08:00"},{"name":"Taipei","identifier":"Asia/Taipei","offset":"+08:00"},{"name":"Ulaanbaatar","identifier":"Asia/Ulaanbaatar","offset":"+08:00"},{"name":"Osaka","identifier":"Asia/Tokyo","offset":"+09:00"},{"name":"Sapporo","identifier":"Asia/Tokyo","offset":"+09:00"},{"name":"Seoul","identifier":"Asia/Seoul","offset":"+09:00"},{"name":"Tokyo","identifier":"Asia/Tokyo","offset":"+09:00"},{"name":"Yakutsk","identifier":"Asia/Yakutsk","offset":"+09:00"},{"name":"Adelaide","identifier":"Australia/Adelaide","offset":"+09:30"},{"name":"Darwin","identifier":"Australia/Darwin","offset":"+09:30"},{"name":"Brisbane","identifier":"Australia/Brisbane","offset":"+10:00"},{"name":"Canberra","identifier":"Australia/Melbourne","offset":"+10:00"},{"name":"Guam","identifier":"Pacific/Guam","offset":"+10:00"},{"name":"Hobart","identifier":"Australia/Hobart","offset":"+10:00"},{"name":"Melbourne","identifier":"Australia/Melbourne","offset":"+10:00"},{"name":"Port Moresby","identifier":"Pacific/Port_Moresby","offset":"+10:00"},{"name":"Sydney","identifier":"Australia/Sydney","offset":"+10:00"},{"name":"Vladivostok","identifier":"Asia/Vladivostok","offset":"+10:00"},{"name":"Magadan","identifier":"Asia/Magadan","offset":"+11:00"},{"name":"New Caledonia","identifier":"Pacific/Noumea","offset":"+11:00"},{"name":"Solomon Is.","identifier":"Pacific/Guadalcanal","offset":"+11:00"},{"name":"Srednekolymsk","identifier":"Asia/Srednekolymsk","offset":"+11:00"},{"name":"Auckland","identifier":"Pacific/Auckland","offset":"+12:00"},{"name":"Fiji","identifier":"Pacific/Fiji","offset":"+12:00"},{"name":"Kamchatka","identifier":"Asia/Kamchatka","offset":"+12:00"},{"name":"Marshall Is.","identifier":"Pacific/Majuro","offset":"+12:00"},{"name":"Wellington","identifier":"Pacific/Auckland","offset":"+12:00"},{"name":"Chatham Is.","identifier":"Pacific/Chatham","offset":"+12:45"},{"name":"Nuku'alofa","identifier":"Pacific/Tongatapu","offset":"+13:00"},{"name":"Samoa","identifier":"Pacific/Apia","offset":"+13:00"},{"name":"Tokelau Is.","identifier":"Pacific/Fakaofo","offset":"+13:00"}]} 

如果我做this.store.findAll('time-zone'),而不是this.store.query('time-zone', {}),它显示了最后一次时区,而不是149次,但它仍然只显示最后一个时区。

这里是我的time-zone.js模式也:

import DS from 'ember-data'; 
import Validation from 'titans-haze/mixins/validation'; 

export default DS.Model.extend(Validation, { 
    name: DS.attr('string'), 
    identifier: DS.attr('string'), 
    offset: DS.attr('string') 
}); 

回答

0

我找到了解决方案this SO answer

import ApplicationSerializer from 'titans-haze/serializers/application'; 

export default ApplicationSerializer.extend({ 
    primaryKey: 'identifier' 
}); 

由于我的时区记录不具有id属性,显然灰烬没有考虑他们不同。告诉Ember这个独特的标识符似乎解决了这个问题。