2015-02-22 4 views
-1

Я пытаюсь передать переменную от контроллера к значению атрибута директивы. Я использую эту директиву https://github.com/siddii/angular-timer. И мой код выглядит следующим образомAngular.js директива

<div ng-controller="transactionsController"> 
       <table class="table" data-row-style="rowStyle"> 
       <thead> 
       <tr> 
        <th>Link to Transaction</th> 
        <th>Amount Invested</th> 
        <th>Payout Amount</th> 
        <th>Transaction Status</th> 
        <th>Time</th> 
       </tr> 
       </thead> 
       <tbody> 
       <tr ng-repeat="transaction in transactions"> 
        <td><a href='https://blockchain.info/tx/{{transaction.input_transaction_hash}}'> {{transaction.input_transaction_hash}} </a></td> 
        <td> {{transaction.value/100000000}} </td> 
        <td> {{(transaction.value/100000000) * 1.2}} </td> <!--TODO: Investment % shouldn't be hardcoded --> 
        <td class='red' ng-if="transaction.confirmations < 6 || transaction.confirmations == null">unconfirmed</td> 
        <td class='green' ng-if="transaction.confirmations >= 6">confirmed</td> 
        <!-- <td>{{transaction.date}}</td> --> 
        <td><timer end-time="{{transaction.date}}">{{days}} days, {{hours}} hours, {{minutes}} minutes, {{seconds}} seconds.</timer><td> 
       </tr> 
       </tbody> 
       </table> 
      </div> 
     </div> 

transaction.date от другого контроллера, чем директивы и является строка форматируется даты в миллисекундах. Вы также можете посмотреть здесь примеры директивы. http://siddii.github.io/angular-timer/

У меня возникла ошибка при использовании transaction.date в директиве таймера.

+0

Но где вопрос? –

+0

Какое описание ошибки? –

+0

Ошибка - это просто синтаксическая ошибка, вопрос более общий, и я просто пытаюсь показать, что я пытаюсь сделать. Которая берет дату из бэкэнд и помещает ее в атрибут атрибута end-time для каждой транзакции. – Sean

ответ

1

Таким образом, основная проблема заключается в связи между контроллерами.

Это более структурная проблема и восходит к тому, как вы принципиально решаете организовать свое приложение.

Одним из важных способов обмена данными между контроллерами является объединение всех ваших данных в сервисе или на заводе (Google для документации в Угловом API, если вы не знакомы с тем, что такое служба).

Вы сохраняете все свои данные в одном маленьком пакете (услуге или на заводе), который может извлекать данные из нескольких источников. Затем в вашем контроллере вы просто передаете службу в качестве аргумента и создаете новый экземпляр службы в вашем контроллере.

Возможно, вы также можете использовать функции широковещания или испускания (см. Угловой API), которые буквально передают данные по всему миру либо вверх, либо вниз по дереву узлов, а ваши контроллеры могут «захватывать» данные и использовать их независимо от источника.

Смежные вопросы