2017-02-13 1 views
3

Можно ли изменить/поместить трубу для форматирования определенного столбца в Угловом 2 при нажатии кнопки? Например, у меня есть таблица с столбцами «Имя» и «Часы», когда я нажимаю кнопку, данные, отображаемые для «Часов», должны быть преобразованы в дни и наоборот.Угловое изменение 2-х труб на кнопку щелчка для строк таблицы

<button class="btn btn-secondary" (click)="convertToDays()">Days</button> 
<button class="btn btn-secondary" (click)="convertToHours()">Hours</button> 

<tbody> 
<td>{{availableLeave.hours}}</td> 
</tbody> 

convertToDays(){ 
//put pipe to format availableLeave.hours to display as days ex.('48' hours should be displayed as '2' days) 
} 

convertToHours(){ 
//will just revert the original formatting of availableLeave.hours which is in hour format 
} 
+1

Пожалуйста, пост код, который демонстрирует, что вы пытаетесь выполнить. Да, это возможно, но трудно сказать, какой из 200 способов будет соответствовать вашим потребностям. –

+0

привет, Гюнтер, спасибо за проверку, я добавил немного псевдого из того, чего хочу достичь, но похоже, что кто-то отправил ответ, который мог бы помочь, я проверю, какой путь подходит больше всего. – xird

ответ

4

Вы можете передать параметр в трубу, как

{{someValue | myPipe:param}} 

<button class="btn btn-secondary" (click)="param = 'd'">Days</button> 
<button class="btn btn-secondary" (click)="param = 'h'">Hours</button> 
class MyPipe implements PipeTransform { 
    transform(value, param) { 
    if(param === 'h') { 
     return "..."; 
    } else { 
     return "..."; 
    } 
    } 
} 
1

В соответствии с вашим требованием вы можете использовать Pipe непосредственно в вашем файле компонента. Вы можете сделать две трубы по одному для часов и одну для Дней, затем вызвать функцию преобразования требуемой трубы.

для получения более подробной информации о том, как использовать трубы в компоненте или в обслуживании, check this post.

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