2013-07-04 3 views
0

난 그냥 각도 배우기 시작하고이 사소한 생각이나 했 겠어요,하지만 난 새 모델을 추가하면 Angular 's orderBy 업데이트를 어떻게 작성합니까?

내가 date 속성에 의해 주문 expenses의 목록이 .. 그것의 의미가 없습니다

<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 초 후에 으로 주입 됨)입니다.

add_expense 함수 끝에 아무런 차이가 없으며 $scope.$apply()을 수동으로 필터링하여 오류 ($ apply already in progress)가 발생했습니다. 대신 날짜와 같은 날짜 추가

+0

당신은 문제가 재생 바이올린을하시기 바랍니다 할 수 있습니까? – Blackhole

답변

0

: '01은// 2013 ' 사용 date: new Date('01/05/2013')하고 작동 05 완벽

+0

고마워 --- 나는 처음의 '비용'배열에서뿐만 아니라 새로운 객체를 밀 때도 Date 객체를 초기화했다. – Elise

+0

Elise가 말했듯이, 초기 범위와 푸시 된 둘 모두에서이 새로운 날짜()를 사용하면 효과가 있습니다. 이것을 해결하는 데 6 시간의 무거운 시간이 걸렸습니다. 나는 물건을 시험해 볼 때 정확한 라인에 있지 않았습니다. –