我刚开始学习角和本来以为这是小事,但我无法理解它..如何在添加新模型时让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