私は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()