Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.08.2018, 15:45
Новичок на форуме
Отправить личное сообщение для JustMe Посмотреть профиль Найти все сообщения от JustMe
 
Регистрация: 05.08.2018
Сообщений: 5

Отображение связанных элементов
Добрый день.
Есть следующая задача:
Надо отобразить элемент, в полях у него есть как просто строчки так и указатели на другой элемент. Например поле со значением 0, а в другом элементе 0 указывает на расшифровку : "значение". Как это можно реализовать?

export class Employee {
constructor(public id: number,
public firstName: Alex,
public lastName: Ivanov,
public index: 170000)}

export class index {
constructor(public id: number,
public index: string,
public adress: string)}


@Component({
selector: 'app-employee',
templateUrl: './employee.component.html',
styleUrls: ['./employee.component.scss']
})
export class EmployeeComponent implements OnInit {

employee: Employee;
index: Index[ ] = [ ];


Например индекс 170000 - Тверь
Надо чтобы Employee отображался как:

имя: Alex,
фамилия: Ivanov,
город: Тверь

Подскажите, как это можно реализовать?
Ответить с цитированием
  #2 (permalink)  
Старый 05.08.2018, 16:39
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

JustMe,
Что именно не получается? Создайте метод в классе компонента loadData(), в котором и приведите элементы в "чистые" объекты. Вы же знаете какие значения указывают на другой элемент?
Ответить с цитированием
  #3 (permalink)  
Старый 05.08.2018, 22:13
Новичок на форуме
Отправить личное сообщение для JustMe Посмотреть профиль Найти все сообщения от JustMe
 
Регистрация: 05.08.2018
Сообщений: 5

Не получается обновить поля объекта, отображаются поля старого объекта.
Что я делаю не так?

export class EmployeeComponent implements OnInit {

@Input() employee: Employee;

indexess: index[] = [];

constructor(private service: EmployeeService) {
}

ngOnInit() {
this.loadData();
}

loadData() {

this.service.getIndex().subscribe(
data => this.indexes = data,
error => console.log(error)
);

for (let ind of this.indexes) {
if (ind.index === this.employee.index)
{
this.employee.index = index.address;
}
}
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2018, 07:03
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

JustMe,
Ну потому что this.service.getIndex() - штука асинхронная. А код ниже выполняется синхронно.
loadData() {

this.service.getIndex().subscribe(
data => {
    this.indexes = data;
    for (let ind of this.indexes) {
        if (ind.index === this.employee.index)
           {
               this.employee.index = index.address;
           }
},
error => console.log(error)
);
}
Ответить с цитированием
  #5 (permalink)  
Старый 06.08.2018, 17:34
Новичок на форуме
Отправить личное сообщение для JustMe Посмотреть профиль Найти все сообщения от JustMe
 
Регистрация: 05.08.2018
Сообщений: 5

Понятно. То есть надо сначала получить все данные через метод getIndex() и только потом "сделать" чистые объекты? Я пока плохо ориентируюсь, как по хорошему это обычно делают? Может пример есть?
Ответить с цитированием
  #6 (permalink)  
Старый 07.08.2018, 06:49
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
То есть надо сначала получить все данные через метод getIndex() и только потом "сделать" чистые объекты?
Ну по хорошему да, иначе что вы в шаблоне будете выводить, если у вас в качестве значения не данные, а ссылка на другой элемент.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отображение элементов isotope.js deadhunter jQuery 10 06.03.2017 15:58
Проблема отображение элементов на разных страницах при одинаковых скриптах (display:n RomeroKo jQuery 0 13.02.2016 04:21
Отображение определенных элементов таблицы при нажатии на radio Kichiro Элементы интерфейса 2 04.12.2014 18:05
Отображение и скрытие элементов UL Surlik jQuery 0 19.02.2012 17:20
IE 6 не обновляет отображение элементов.... geschaft Internet Explorer 4 09.07.2011 17:44