我剛開始學習角和本來以爲這是小事,但我無法理解它..如何在添加新模型時讓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年將一件物品添加到我的expenses
中。新訂單將爲2011年,2013年,2013年,2014年。然後我添加一個2007年的項目,期望它成爲名單中的第一個。相反,新訂單是2011年,2013年,2013年,2007年,2014年(原expense
s後注入)。
我試過在add_expense
函數的末尾手動過濾expenses
,這並沒有什麼區別,並且使用$scope.$apply()
,這給了我一個錯誤($ apply已在進行中)。
你能使它重新產生問題小提琴嗎? – Blackhole