2013-10-17 26 views
0

我有骨幹的應用程序,我想以按基礎的浮動提起收藏,但不是做這樣的事情:
- 9.90
- 12.50
- 100.50
- 110.50
排序方式字段浮動

排序的結果是這樣的:
- 100.50
- 110.50
- 12.50
- 9.90

這是我的模型:

LanguageModel = Backbone.Model.extend({}); 

我的收藏:

LanguageCollection = Backbone.Collection.extend({ 
      model: LanguageModel, 
      sort_key: 'price', // default sort key 
      initData: function(data){ 
       return data; 
      }, 
      comparator: function (item) { 
       return item.get(this.sort_key); 
      }, 
      sortByField: function (fieldName) { 
       this.sort_key = fieldName; 
       this.sort(); 
      } 
     }); 

我的觀點:

var TourView = Backbone.View.extend({ 
     initialize: function(){ 
      this.collection_language = new LanguageCollection(); 

      var self = this; 
      var success = function(){ 
       self.render(); 
      }; 
      var lang = this.importLanguages(); 

      $.when(lang).done(success); 
     }, 
     importLanguages: function(){ 
      var languages = this.collection_language.initData(jQuery.parseJSON($('#json-languages').html())); 
      this.collection_language.set(languages); 

      return true; 
     }, 
     render: function(){ 
      $.each(this.collection_language.models, function(key, value) { 
       value.attributes.price = parseFloat(value.attributes.price).toFixed(2); 
      }); 

      this.collection_language.sortByField('price'); 
      console.log(this.collection_language); 
     } 
    }); 

進入我的看法我試圖解析收集和轉換價浮動到訂單,但它不能解決我的問題

$.each(this.collection_language.models, function(key, value) { 
        value.attributes.price = parseFloat(value.attributes.price).toFixed(2); 
       }); 

       this.collection_language.sortByField('price'); 

回答

0

發現問題,爲toFixed(2)順序函數內。

我必須改變這種:

$.each(this.collection_language.models, function(key, value) { 
    value.attributes.price = parseFloat(value.attributes.price).toFixed(2); 
}); 

這樣:

$.each(this.collection_language.models, function(key, value) { 
    value.attributes.price = parseFloat(value.attributes.price); 
}); 

做工精細現在

0

似乎排序邏輯是好的。按其他字段排序正在按預期工作? 我只是想建議轉換初始化步驟的價格。 而要做到這一點,最好的地方是一個模型的parse方法:

parse : function (data) { 
    data.price = +data.price; 
    return data; 
} 
+0

是其他分揀工作的罰款。只有這是一個浮動領域。儘快我加你的建議t謝謝 –