0

私はAngularの学習を始めたばかりで、これは些細なことだと思っていたでしょうが、意味がわかりません..

のリストがあり、プロパティexpenses順に並べられています。date

<div class="expense" ng-repeat="exp in expenses | orderBy:'date'">
    <div class="c date">{{ exp.date | date: 'dd/MM/yyyy' }}</div>
    <div class="c amount">{{ exp.amount | currency:'£' }}</div>
    <div class="c category">{{ exp.category }}</div>
    <div class="c note">{{ exp.note }}</div>
</div>

expensesコントローラーでいくつかを初期化しています:

$scope.expenses = ({date: '01/05/2013', amount: 137, category: 'Groceries', note: ""},
      {date: '01/03/2011', amount: 100, category: 'Groceries', note: ""},
      {date: '05/05/2013', amount: 10, category: 'Entertainment', note: ""});

これらはすべて、最初は正しい順序で表示されます (2011、2013、2013)。expenseその後、このリストに を正常に追加できます。

 $scope.add_exp = function() {
    $scope.expenses
    .push({date: $scope.date, amount: $scope.amount, category: $scope.category, note: $scope.note});

    // Reset fields
    $scope.date = '';
    $scope.amount = '';
    $scope.category = '';
    $scope.note = '';
  };

ここにキャッチがあります-新しく追加された費用は実際には注文されていますが、初期化時に存在する費用は考慮されていません.

たとえば、年が 2014 のアイテムを my に追加しますexpenses。新しい順序は 2011、2013、2013、2014 です。次に、2007 年の項目を追加し、リストの最初になることを期待しています。代わりに、新しい順序は 2011、2013、2013、2007、2014 です (元の s のexpenseに挿入されます)。

関数expensesの最後で手動でフィルタリングを試みましたが、違いはありませんでした.add_expense$scope.$apply()

4

1 に答える 1

0

date:'01/05/2013' のような日付を追加する代わりに使用するdate: new Date('01/05/2013')と、完全に機能します

于 2013-07-04T16:54:03.920 に答える