#angular #firebase
#angular #firebase
Вопрос:
В моей firebase статус сохраняется как «0», «1», «2», «3». Когда я извлекаю данные, они представлены таким образом «статус: 0». Как мне закодировать его таким образом, чтобы при извлечении данных отображалось «статус: новый» вместо «статус: 0»
component.html
<html>
<table id="table" class="table table-striped">
<thead>
<tr>
<th>Due Date</th>
<th>Assigner</th>
<th>Assignee</th>
<th>Urgency</th>
<th>Description</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let content of acts">
<td>{{content.dueDate}}</td>
<td>{{content.Assigner}}</td>
<td>{{content.Assignee}}</td>
<td>{{content.urgency}}</td>
<td>{{content.description}}</td>
<td>{{content.status}}</td>
</tr>
</tbody>
</table>
</html>
Component.ts
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators, FormArray } from
"@angular/forms";
import { TodoItem } from "../_models";
import { ToDoListService } from '../_services';
@Component({
selector: "toDoList",
templateUrl: "./toDoList.component.html",
styleUrls: ["./toDoList.component.css"]
})
export class ToDoList implements OnInit {
Form: FormGroup;
currentUser: User;
acts: Array<any> = [];
act: TodoItem;
constructor(private fb: FormBuilder,
private todoSrv: ToDoListService) {
let res2do = todoSrv.getAll();
res2do.then(result2do => {
result2do.subscribe(async _acts => {
this.acts = _acts;
console.log("Initial act", this.acts);
});
});
}
Комментарии:
1. не могли бы вы опубликовать свой текущий код, пожалуйста
2. вы хотите отображать статус как
new
в таблице вместо0
3. @PatricioVargas привет, я только что добавил код, пожалуйста, взгляните
4. @BearNithi Да, это верно
5. @BearNithi Спасибо за ответ!! что, если у меня есть более одного пользовательского вывода? например, «статус: Новый», «статус: ожидающий» и «статус: завершено».
Ответ №1:
Для достижения этого существует несколько способов
<td>{{content.status === 0 ? 'new' : content.status }}</td>
или
TS
getStatus(status: number): string {
if(status === 0) {
return 'new';
}
//you can add more user output here
}
HTML
<td>{{ getStatus(content.status)}}</td>
Ответ №2:
Вы можете использовать ?
троичный оператор при интерполяции следующим образом:
<td>{{(content.status === 0) ? 'New' : content.status }}</td>
Если у вас более одного статуса, вам следует создать метод в component.ts, использовать инструкцию switch для установки различных значений на основе номера статуса следующим образом:
getStatus(statusNum) {
let status = '';
switch(statusNum) {
case 0:
status = 'new';
break;
case 1:
status = 'pending';
break;
case 2:
status = 'completed';
break;
}
return status;
}
component.html
<td>{{getStatus(content.status) }}</td>