Я решил эту проблему и сумел получить желаемое поведение.Я отвечаю, чтобы это могло помочь сообществу в будущем.
Вы должны использовать атрибуты data-height
и data-width
, которые предоставляет Twitter API.Теперь, поскольку я хотел, чтобы он был отзывчивым, я не хотел использовать фиксированный размер, поэтому я попытался задать значение data-width
как 100%
, ожидая, что оно автоматически отрегулирует ширину родительского контейнера, но это не так.
Так что мне пришлось манипулировать атрибутом data-width
, чтобы как-то настроить размер родительского контейнера.Я сделал это, получив nativeElement
, соответствующий этому элементу twitter, и динамически установив атрибут data-width
, который вы можете получить из ширины контейнера, используя тот же способ, но на этот раз для nativeElement
контейнера div.Это делается в машинописном тексте на Angular 6. См. Ниже сценарий типа компонента, содержащего тег twitter: -
import {AfterViewInit, Component, ViewChild, ElementRef, HostListener} from '@angular/core';
@Component({
selector: 'app-content-container',
templateUrl: './content-container.component.html',
styleUrls: ['./content-container.component.css']
})
export class ContentContainerComponent implements AfterViewInit {
@ViewChild('twitterBarContainingDiv')
twitterBarContainingDiv: ElementRef;
@ViewChild('twitterBar')
twitterBar: ElementRef;
constructor() { }
ngAfterViewInit() {
this.adjustTwitterBarWidth();
}
@HostListener('window: resize')
public onResize(): void {
this.adjustTwitterBarWidth();
}
public adjustTwitterBarWidth(): void {
// console.log('twitterBarContainingDiv width:' + this.twitterBar.nativeElement.getAttribute('data-width'));
this.twitterBar.nativeElement.setAttribute('data-width', this.twitterBarContainingDiv.nativeElement.clientWidth);
console.log('twitterBar width:' + this.twitterBar.nativeElement.getAttribute('data-width'));
}
}
См. Ниже HTML-код для соответствующего компонента: -
<div class="pr-2 pl-2">
<app-name-header></app-name-header>
<app-primary-nav></app-primary-nav>
<div class="container-fluid row m-0 pr-0 pl-0">
<div class="col-md-9 pl-0 pr-0">
<app-nav-section-display></app-nav-section-display>
</div>
<div #twitterBarContainingDiv class="col-md-3 mt-2 pr-0 pl-0" >
<a #twitterBar class="twitter-timeline" data-height="800" data-chrome="" data-partner="tweetdeck" href="https://twitter.com/paramvirsingh_k/timelines/1056538294912212993?ref_src=twsrc%5Etfw">Curated Tweets - Curated tweets by paramvirsingh_k</a>
</div>
</div>
</div>