2016-09-07 2 views
0

Я пытаюсь сортировать инвентаризацию автомобиля своего приложения на make и model в алфавитном порядке, и я могу только отсортировать его по маркам. Я также пробовал сортировать по make и year, но опять же он сортирует только по make.Угловой JS orderBy 2 свойства не работают

Имеет ли порядок сортировки по алфавиту и количеству?

Вот мой код:

<div class="row gallery-container" ng-init="getCars();"> 
    <div class="inventory-title"> 
    <h2>Current Inventory</h2> 
    </div> 
    <div class="car-container"> 
    <div ng-repeat="car in cars | orderBy:['make','model']"> 
    <div class="col-md-10 col-ms-10 col-sm-10 col-md-offset-1 col-sm-offset-1 col-ms-offset-1"> 
     <a ng-href="/#/car/{{car._id}}" class="no-style-link-thumb"> 
     <div class="thumbnail inventory-car-containter"> 
      <img ng-src="{{car.picture.url | fpConvert: {filter:'sharpen', w:750, h:375} }}" /> 
      <div class="caption text-center"> 
      <p class="yr-mk-mdl">{{car.year}} {{car.make}} {{car.model}}</p> 
      <p class="price">{{car.price}}</p> 
      </div> 
     </div> 
     </a> 
    </div> 
</div> 

Это моя модель автомобиля:

'use strict'; 
module.exports = (mongoose, models) => { 
// Defines the car schema 
    let CarSchema = mongoose.Schema({ 
    make: {type: String, required: true}, 
    model: {type: String, required: true}, 
    year: {type: String, required: true}, 
    createdAt: {type: Date, default: Date.now} 
}); 

// Sets the createdAt parameter equal to the current time 
CarSchema.pre('save', function(next){ 
    var now = new Date(); 
    if (!this.createdAt) { 
     this.createdAt = now; 
    } 
    next(); 
}); 

// Exports the CarSchema for use elsewhere. 
let Car = mongoose.model('Car', CarSchema); 
models.Car = Car; 
}; 

Я хочу, чтобы отсортировать список, как это:
-Aston Martin DB5
-Ferrari 250 California Spyder SWB
-Ferrari 458
-Porsche 911

Вот как это в настоящее время сортировки списка:
-Aston Martin DB5
-Ferrari 458
-Ferrari 250 California Spyder SWB
-Porsche 911

ответ

0

Похоже, что выражение вычислено (оценено?) Угловым - вместо прохождения ['make','model'], вы должны попробовать следующее:

<div ng-repeat="car in cars | orderBy:'make + model'"> 
+0

Я дал это выстрел, и это заставило его не приказывать вообще. Спасибо за предложение. –

+0

вы уверены? он был опробован и протестирован - https://jsfiddle.net/vgrafe/r819xbh3/1/ – vgrafe

+0

Я дал ему еще один снимок, и он разбивает orderBy, и он просто возвращается к тому, как он был до того, как он был отсортирован вообще. Кажется, что он отлично работает в jsfiddle, но он разбивает сортировку в моем коде. –

Смежные вопросы