簡體   English   中英

使用時間和Angular.js對對象數組進行排序

[英]Sorting array of objects using time and Angularjs

我想按從最早到最新的順序對對象數組進行排序。 我最初是使用momentjs庫執行此操作的,但現在可以使用,但是現在不推薦使用我使用的方法。

首先,我嘗試將輸入時間設為標准時間(例如0500),然后使用該屬性對其進行排序。 但是我很難將這個新的標准時間和所有其他屬性推入計划數組。

我當時在考慮使用array.sort()array.sort() am/pm對其進行排序,然后再按數字對其進行排序。 我不確定該怎么做,因為我必須處理ampm

app.js

.controller('SchedulerController', schedulerCtrl);

    function schedulerCtrl() {
        this.plans = [
        {
            displayTime: '05:00pm',
            duration: '30',
            task: 'Team meeting',
        },
        {
            displayTime: '06:00pm',
            duration: '60',
            task: 'Watch favorite TV show'
        }
        ];
    }
    schedulerCtrl.prototype.addNewTask = function() {
        var that = this;
        that.plans.push(that.user);
        that.user = '';

}

您可以使用underscorejs進行有效的排序

schedulerCtrl.prototype.addNewTask = function() {
        var that = this;
        that.plans.push(that.user);
        _.sortBy(that.plans, function (item) { return item.displayTime });
        that.user = '';

}

可以使用自定義過濾器,

<p>{{item | orderBy:sortItemsAccording2Time}}</p>


var App = Angular.module('myApp',[])
 App.filter('sortItemsAccording2Time',function(input,scope){
    //logic here  (service dependency can also be used for orderby service by just injecting the respective service which serves the job)
 })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM