2014-02-07 4 views
0
내가 성공을 많이하지 내 UI에 늦게 계산 된 필드를 결합하기 위해 노력하고있어

, 이것은 내 컨트롤러 에서 제외하고 예상대로 모든 필드 컨트롤러에 따라 내가 "ASD" 를 볼 것으로 예상, 바인드 있습니다각도 UI 바인딩 문제

<table> 
       <tr> 
        <th ng-bind="'from'|i18n"></th> 
        <th ng-bind="'amount'|i18n"></th> 
        <th ng-bind="'to'|i18n"></th> 
        <th ng-bind="'description'|i18n"></th> 
       </tr> 
       <tr ng-repeat="payment in payments"> 
        <td ng-bind="payment.from"></td> 
        <td>{{getAmount(payment)}}</td> 
        <td>{{getTo(payment)}}</td> 
        <td>{{getDescription(payment)}}</td> 
       </tr> 
       <tr ng-show="!payments.length"> 
        <td ng-bind="'no_payments'|i18n"></td> 
       </tr> 
      </table> 

아무것도 FENCY : 나는 목록을로드하는이 컨트롤러에 도착하면, UI는 다음과 같습니다 하지만 나는 아무것도 볼 수 없다.

나는이 방법으로 약속을 되풀이해야하지만, 우선 간단한 코드로 작동하도록 노력하고 있습니다.

답변

0

내 문제는 컨트롤러가 뷰를 제어하지 않고 컨트롤러를 제어하는 ​​것이 아니라 컨트롤러를 제어함으로써이 문제를 해결할 수 있었기 때문에 "보낸 사람"필드에 약속을 할당하는 대신에 다음과 같이 선언했습니다.

angular.forEach($scope.payments, (payment, index)-> 
    $scope.resolveFrom(payment) 
) 

$scope.resolveFrom = (payment)-> 
    if payment.amount < 0 
    payment.from = "1" 
    else if payment.campaign_id 
    Campaign.get(payment.campaign_id) 
    .then((campaign)-> 
      payment.from = campaign.name))) 

    payment.from = "unkown" 

나는 의견/대안 솔루션을 평가할 것, 이것이 가장 좋은 방법입니다 있는지 확실하지 않습니다 : 내 코드는 다음과 같습니다 그래서 나는에 넣어 값을했다.