Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Цикл отрабатывает несколько раз / 4 сообщений из 4, страница 1 из 1
15.02.2019, 18:42
    #39774733
stim644
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл отрабатывает несколько раз
Всем привет. Столкнулся с проблемой, что цикл отрабатывает несколько раз. Сейчас привет пример в коде.
app.component.Html:
<div *ngFor="let item of offers1(); let i = index" >
<button type="button" class="btn btn-secondary" (click)="fetchOffer(2)" >edit</button>
</div>

Ts:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
import { Component } from '@angular/core';
import { LogManagerService } from './_modules/LogginService/log-manager.service';
import {Router} from '@angular/router';
import {Offer} from './models/Offer';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'appspress-tracker-frontend';

  constructor(private logger: LogManagerService) {
    logger.debug('AppComponent initialized');
  }

  offers1() {
    this.logger.debug('offers log');
    const mockRepository = {
      getOffers: function () {
        return [
          new Offer(1, 'test1', ['RU', 'BR', 'IN']),
          new Offer(2, 'test2', ['GB']),
          new Offer(3, 'test3', ['RU']),
          new Offer(3, 'test3', ['RU']),
          new Offer(3, 'test3', ['RU'])
        ];
      }
    };
    return mockRepository.getOffers();
  }

  fetchOffer(id) {
    this.logger.debug('offers log');
  }
}



Т.е. метод offers1 вызывается по несколько раз, когда отображается компонент. Даже и не могу понять, в чем может быть проблема. Подскажете?
...
Рейтинг: 0 / 0
18.02.2019, 12:43
    #39775483
stim644
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл отрабатывает несколько раз
Просто я столкнулся именно с этой проблемой когда не понял, почему у меня ангуляровское событие click не срабатывает, когда я нажимаю на кнопку edit, срабатывает событие и я проваливаюсь в шаблон конкретного офера, потом захожу через меню снова в шаблон список офферов и пытаюсь снова нажать на кнопку. Но событие не срабатывает во второй раз! Подскажите почему такое может произойти? Спасибо!
...
Рейтинг: 0 / 0
18.02.2019, 13:08
    #39775518
Лысый дядька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл отрабатывает несколько раз
stim644,

https://jsfiddle.net/c9qwgbz1/1/

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

А теперь, что у вас не работает?
...
Рейтинг: 0 / 0
19.02.2019, 12:06
    #39776105
stim644
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл отрабатывает несколько раз
Лысый дядькаstim644,

https://jsfiddle.net/c9qwgbz1/1/

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

А теперь, что у вас не работает?

В общем была проблема из за <ng-selectize [config]="tagsConfig" [(ngModel)]="tagsVal"></ng-selectize> в шаблоне offer. Как только убираю этот компонент, так сразу же работает переход без описанных выше глюков.
Или же если все же хочется использовать данный компонент, то можно попробовать вызвать detach:
offers() {
this.logger.debug('offers');
this.cd.detach();
return this.mockRepository.getOffers();
}

Полезная ссылка: https://habr.com/ru/post/327004/
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Цикл отрабатывает несколько раз / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]