我刚刚开始学习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
之后注入)。
我尝试在expenses
函数末尾手动过滤add_expense
,这没有任何区别,并使用$scope.$apply()
,这给了我一个错误($ apply)已经在进行中。)
答案 0 :(得分:0)
而不是像日期那样添加日期:&#39; 01/05 / 2013&#39;
使用date: new Date('01/05/2013')
,它将完美地运作