Content projection (კონტენტის პროექცია) არის პატერნი (კანონზომიერება) რომლის დახმარებითაც ანგულარში საშუალება გვაქვს მშობელი კომპონენტიდან შვილ კომპონენტში გავგზავნოთ რაიმე სახის კონტენტი, მაგალითად რაიმე თეგების ერთობლიობა.
ანგულარში გვაქვს 3 სახის content projection
კონტენტ პროექცია (content projection) |
დეტალები |
ერთ სლოტიანი კონტენტ პროექცია | ერთმაგი კონტენტ პროექციის დროს, კომპონენტი ეთანხმება მხოლოდ 1 კონტენტ პროექციას |
მრავალ სლოტიანი კონტენტ პროექცია | მრავალ სლოტიანი კონტენტ პროექციის დროს კომპონენტი ეთანხმება მრავალ კონტენტ პროექციას |
პირობითი კონტენტ პროექცია | პრობითი კონტენტ პროექციის დორს კომპონენტი არენდერებს კონტენტ პროექციას იმ შემთხევაში თუ პირობა სრულდება |
მოდი დავიწყოთ მაგალითის გაკეთება, პირველ რიგში დავაგენერიროთ კომპონენტი რომელსაც ერქმევა სახელი
app-test
ng g c test
მოცემული ბრძანება დააგენერირებს test კომპონენტს, კომპონენტის გენერაციის შემდეგ app.component.ts-ში გამოვიყენოთ სელექტორი
app.component.html
<app-test></app-test>
მოცემულ სელექტორში ისე როგორც html თეგების შემთხვევაში მაგალითისთვის ჩავწეროთ რაიმე თეგი შიგთავსით
app.component.html
<app-test>
<p>Hello I'm projected from app component</p>
</app-test>
როგორც ნახეთ <app-test>
სელექტორის გახსნისა და დახურვას შორის ჩავსვით <p>
თეგი რომელიც შეიცავს ტექსტს Hello I'm projected from app component.
იმისთვის, რომ მოცემული <p>
თეგი გამოჩნდეს test კომპონენტის .html
ფაილში ამისთვის საჭიროა გამოვიყენოთ <ng-content></ng-content>
სელექტორი თავად test.component.html
-ში
test.component.html
<p>test works!</p>
<ng-content></ng-content>
კონტენტ პროექციის დროს <p>
თეგი, რომელიც დავწერეთ <app-test></app-test>
-ის გახსნისა და დახურვას შორის გაიგზავნება თავად test.component.html
-ში და ჩაჯდება <ng-content></ng-content>
სელექტორის ადგილას
მაგალითი:
<app-root _nghost-tba-c18="" ng-version="14.2.3">
<app-test _ngcontent-tba-c18="" _nghost-tba-c17="">
<p _ngcontent-tba-c17="">test works!</p>
<p _ngcontent-tba-c18="">Hello, I'm projected from app component</p>
</app-test>
</app-root>
git-ის რეპოზიტორი არსებული ნიმუშით
მრავალ სლოტიანი კონტენტ პროექციის ასაწყობად იგივე კოდს გამოვიყენებთ და ვეცდებით დავამატოთ კიდევ ერთი ng-content სელექტორი.
test.component.html-ში დავამატოთ შემდეგი ჩანაწერი
<p>test works!</p>
<ng-content></ng-content>
<p>second content projected below</p>
<ng-content select="[second]"></ng-content>
როგორც კოდიდან ჩანს მეორე ng-content
სელექტორს აქვს ატრიბუტი select
რომელშიც შენახულია [second]
ტექსტი კვადრატული ფრჩხილებით, სწორედ ეს მნიშვნელობა იქნება იდენტიფიკატორი პრექცირებული კონტენტისთვის.
ახლა ვეცადოთ გამოვგზავნოთ კონტენტი app.component.html-დან
app.component.html
<app-test>
<p>Hello, I'm projected from app component</p>
<p second>Second projected content from app component</p>
</app-test>
თუ კოდს დააკვირდებით მეორე p
თეგს აქვს second
ატრიბუტი, რომელიც განსაზღვრავს თუ რომელი ng-content
-ის მაგივრად უნდა ჩაჯდეს არსებული თეგი
git-ის რეპოზიტორი არსებული ნიმუშით
შეისწავლეთ ვებდეველოპმენტის ენები სრულიად უფასოდ, ისეთები როგორებიცაა Javascript, HTML, CSS და კიდევ სხვა მრავალი ენა
ქვემოთ მოცემულია უახლესი 3 ბლოგი პროგრამირების თემატიკასთან დაკავშირებით