【问题标题】:Ember Computed Property Sort TroublesEmber 计算属性排序问题
【发布时间】:2018-10-27 02:12:00
【问题描述】:

我的一个组件内部出现了一些排序问题,似乎无法解决。目前它似乎排序正确,但它把应该是第二个排序的东西放在底部。这是我的组件,希望有人可以在这里提供一些见解...谢谢。

import Component from '@ember/component';
import { inject as service } from '@ember/service';
import EmberObject, { computed, observer } from '@ember/object';

export default Component.extend({
  googleMapsApi: service(),
  geolocation: service(),
  sortDefinition: ['distanceTo'],
  sortedVineyards: Ember.computed.sort('model', 'sortDefinition'),
  didInsertElement() {
    this.send('distanceFrom');
  },
  actions: {
    distanceFrom(){
      let distanceFromLoading = this.get('distanceFromLoading');
      let userLocation = this.get('userLocation');
      var userLocationLat = userLocation[0];
      var userLocationLon = userLocation[1];
      let userLocationFormat = '' + userLocationLat + ',' + userLocationLon;
      // console.log(userLocationFormat);
      var self = this;
      let model = this.get('model');
      // console.log(model);
      model.forEach(function(item) {
        let endLocation = '' + item.get('location');
        self._super(...arguments);
        self.get('googleMapsApi.google').then((google) => {
          var self = this;
          let distanceMatrixService = new google.maps.DistanceMatrixService();
          function calculateDistance() {
            distanceMatrixService.getDistanceMatrix({
              origins: [userLocationFormat],
              destinations: [endLocation],
              travelMode: google.maps.TravelMode.DRIVING,
              unitSystem: google.maps.UnitSystem.IMPERIAL,
              avoidHighways: false,
              avoidTolls: false
            }, callback);
          }
          function callback(response, status) {
            if (status != google.maps.DistanceMatrixStatus.OK) {
            } else {
              if (response.rows[0].elements[0].status === "ZERO_RESULTS") {
              } else {
                var distance = response.rows[0].elements[0].distance;
                var distance_text = distance.text;
                item.set('distanceTo', distance_text);
              }
            }
          }
          calculateDistance();
        });
      });
    }
  }
});

【问题讨论】:

    标签: ember.js ember-data ember-components


    【解决方案1】:

    在我的示例中,distance_text(排序定义)是一个字符串。鉴于我的小数据集,它看起来像是半排序,而可能根本没有排序。将该数字转换为适当的整数,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-20
      • 2014-05-26
      相关资源
      最近更新 更多