Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit6d21d97

Browse files
committed
refactor(sidebar-nav-title): signal inputs, test
1 parent6597289 commit6d21d97

File tree

2 files changed

+25
-22
lines changed

2 files changed

+25
-22
lines changed

‎projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-title.component.spec.ts‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ describe('SidebarNavTitleComponent', () => {
1010
beforeEach(waitForAsync(()=>{
1111
TestBed.configureTestingModule({
1212
imports:[SidebarNavTitleComponent]
13-
})
14-
.compileComponents();
13+
}).compileComponents();
1514
}));
1615

1716
beforeEach(()=>{
@@ -22,7 +21,7 @@ describe('SidebarNavTitleComponent', () => {
2221
title:true,
2322
name:'Theme'
2423
};
25-
component.item=item;
24+
fixture.componentRef.setInput('item',item);
2625

2726
fixture.detectChanges();
2827
});

‎projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-title.component.ts‎

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,39 @@
1-
import{Component,ElementRef,inject,Input,OnInit,Renderer2}from'@angular/core';
1+
import{Component,effect,ElementRef,inject,input,Renderer2}from'@angular/core';
2+
import{INavData}from'./sidebar-nav';
23

34
@Component({
45
selector:'c-sidebar-nav-title',
56
template:''
67
})
7-
exportclassSidebarNavTitleComponentimplementsOnInit{
8+
exportclassSidebarNavTitleComponent{
89
readonly #elementRef=inject(ElementRef);
910
readonly #renderer=inject(Renderer2);
1011

11-
@Input()item:any;
12+
readonlyitem=input<INavData>();
1213

13-
ngOnInit():void{
14-
constnativeElement:HTMLElement=this.#elementRef.nativeElement;
15-
constname=this.#renderer.createText(this.item.name);
14+
readonly #itemEffect=effect(()=>{
15+
constitem=this.item();
16+
if(item?.name){
17+
constnativeElement:HTMLElement=this.#elementRef.nativeElement;
18+
constname=this.#renderer.createText(item.name);
1619

17-
if(this.item.class){
18-
constclasses=this.item.class;
19-
this.#renderer.addClass(nativeElement,classes);
20-
}
20+
if(item?.class){
21+
constclasses=item.class;
22+
this.#renderer.addClass(nativeElement,classes);
23+
}
2124

22-
if(this.item.wrapper){
23-
constwrapper=this.#renderer.createElement(this.item.wrapper.element);
24-
this.addAttribs(this.item.wrapper.attributes,wrapper);
25-
this.#renderer.appendChild(wrapper,name);
26-
this.#renderer.appendChild(nativeElement,wrapper);
27-
}else{
28-
this.#renderer.appendChild(nativeElement,name);
25+
if(item?.wrapper){
26+
constwrapper=this.#renderer.createElement(item.wrapper.element);
27+
this.addAttribs(item.wrapper.attributes,wrapper);
28+
this.#renderer.appendChild(wrapper,name);
29+
this.#renderer.appendChild(nativeElement,wrapper);
30+
}else{
31+
this.#renderer.appendChild(nativeElement,name);
32+
}
2933
}
30-
}
34+
});
3135

32-
privateaddAttribs(attribs:{[x:string]:any},element:any):void{
36+
privateaddAttribs(attribs:{[x:string]:any},element:HTMLElement):void{
3337
if(attribs){
3438
for(constattrinattribs){
3539
if(attr==='style'&&typeofattribs[attr]==='object'){

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp