#angular
#angular
Вопрос:
Я создал модальный загрузчик в angular 7, который загружает динамические данные из API. В первый раз, когда я нажимаю на модальный, он получает данные и правильно передает их в модальный, но после того, как я закрываю модальный и пытаюсь снова открыть тот же или другой модальный, тогда он показывает, что post_detail () не является функцией, и он не открывает модальный снова, в то время как post_detail () — это функция, с помощью которой я вызываю API и работаю при первом нажатии. Если я ввожу статические данные в модальном режиме, то он работает отлично, но если я использую динамические данные из API, то он работает только в первый раз. Моя функция показана ниже:
post_detail(id){
$("#example").modal("show");
this.http.get(`https://www.pikreview.com/rest/post.php?
f=viewamp;id=${id}`).subscribe(post_detail=>{
this.post_detail=post_detail;
this.post_detail.rss=post_detail.additionalLinks.BLOG;
this.post_detail.fb=post_detail.additionalLinks.FB;
this.post_detail.ig=post_detail.additionalLinks.IG;
this.post_detail.pin=post_detail.additionalLinks.PIN;
this.post_detail.yt=post_detail.additionalLinks.YT;
this.post_detail.review=post_detail.review_by.name;
});
}
и это html, который при нажатии я отображаю вышеописанную функцию :
<h5 class="card-title hoverUl"
style="text-transform:capitalize;font-weight:600;cursor:pointer;"
(click)="post_detail(post.postId)">
{{post.title}}
</h5>
и это модальный :
<div class="modal" tabindex="-1" role="dialog" id="example"
data-backdrop='static' data-keyboard='false'>
<div class="modal-dialog" role="document" style="max-width:60%;">
<div class="modal-content">
<div class="modal-body">
<div class="row">
<div class="col-md-6">
<h3 style="font-weight:600;margin-bottom:4%;">{{post_detail.title}}</h3>
<img src="https://pikreview.com{{post_detail.coverPikUrl}}" alt="" style="width:100%;height:345px;">
<div class="pt-4">
<span class="float-left"><i class="fa fa-eye"></i> {{post_detail.view_count}}</span>
<span class="float-right">
<a href="{{post_detail.blog}}" target="_blank"><i class="fa fa-rss p-1" style="color:#ff6600;"></i></a>
<a href="{{post_detail.fb}}" target="_blank"><i class="fa fa-facebook p-1" style="color:#3B5998;"></i></a>
<a href="{{post_detail.ig}}" target="_blank"><i class="fa fa-instagram p-1" style="color:#f40083;"></i></a>
<a href="{{post_detail.pin}}" target="_blank"><i class="fa fa-pinterest p-1" style="color:#cb2027;"></i></a>
<a href="{{post_detail.yt}}" target="_blank"><i class="fa fa-youtube p-1" style="color:#bb0000;"></i></a>
</span>
</div>
<div style="clear:both;" class="p-0 pt-4">
<a href="" class="btn colorCommon btn-block" target="_blank" href="https://pikreview.com{{post_detail.landingUrl}}">Buy Now</a>
</div>
</div>
<div class="col-md-6">
<div class="pb-5">
<h5 class="float-left">Review By : <span class="lead">{{post_detail.review}}</span></h5>
<button (click)="close()" class="close float-right">X</button>
</div>
<div class="description" style="clear:both;">
<p style="white-space:pre-wrap;">{{post_detail.description}}</p>
</div>
<div class="p-4">
<input type="text" placeholder="Leave a comment" class="form-control">
</div>
</div>
</div>
</div>
</div>
Комментарии:
1. не могли бы вы предоставить stackblitz для этого? Недостаточно информации, чтобы получить четкое представление о том, что вы пытаетесь. Еще одно предложение, создайте несколько компонентов меньшего размера для обработки части html, поскольку ваш файл становится довольно большим.
2. проверьте, чтобы изменить переменное имя subscrive post_detail на другое, пожалуйста
3. подсветка кода и улучшенное чтение
4. Спасибо Алирезе Хаджави, сменив имя, это сработало, но до сих пор не знаю, почему