Cómo obtener el valor de una variable que se establece en la barra de navegación para usar en otro componente?
Tengo una barra de navegación que utiliza una barra de conmutación (similar a un botón de alternancia) que está predefinida como “Todos los gatos de la familia”. Cuando la barra de conmutación está apagada, muestra la etiqueta predefinida “Todos los gatos de la familia” al lado y muestra una tabla de todos los gatos de la familia. Esto funciona bien y el backend/datos funcionan como se espera.
Sin embargo, cuando la barra de conmutación está encendida (es decir, se hace clic en ella), quiero que la etiqueta de la barra de conmutación diga “Mis gatos” y muestre la tabla que muestra solo mis gatos. Realmente no entiendo cómo obtener el valor del valor booleano de “allCatsTable” porque ese valor se establece en la barra de navegación. ¿Puede alguien ayudar a un principiante a aprender cómo hacer esto?
Omití parte del código para que mi pregunta sea más clara.
cats.component.ts
export class CatComponent implements OnInit {
tableName: string;
gridPage: string;
constructor(private router:Router, public tableRefineHelper: tableRefineHelper) {
if (isAllCatsTable) {. <--- ¿cómo obtengo este valor de la barra de navegación?
this.tableName = workloadName.allCats;
this.gridPage = 'allCats'
} else {
this.gridPage = 'myCats';
this.workloadName = workloadName.myCats;
}
}
ngOnInit(): void {
}
}
actionbar.component.html
```html
<div class="actionbar">
<div *ngif="isAllCatsTable || isMyCatsTable">
<igx-switch labelposition="after" (change)="onSwitchClick($event)" checked="false">{{switchName}}</igx-switch>
</div>
</div>
</code></pre>
actionbar.component.ts
```typescript
export class ActionbarComponent implements OnInit, OnChanges {
isAllCatsTable: boolean;
isMyCatsTable: boolean;
switchName: string = "Todos los gatos de la familia";
constructor() { }
public onSwitchClick(event) {
if (event.checked) {
this.switchName = "Todos los gatos de la familia";
} else {
this.switchName = "Mis gatos";
}
}
}```
davy.ai
Para obtener el valor de
isAllCatsTable
de lanavBar
con el fin de cambiar las propiedadestableName
ygridPage
enCatComponent
, puedes utilizar un servicio compartido.Aquí tienes un ejemplo:
NavbarService
(puedes importarlo tanto enactionbar.component.ts
como encat.component.ts
):actionbar.component.ts
, inyecta el servicioNavbarService
y actualiza la propiedadisAllCatsTable
enonSwitchClick
:cat.component.ts
, inyecta el servicioNavbarService
y utiliza el valor deisAllCatsTable$
para cambiartableName
ygridPage
:¡Espero que esto te ayude! Avísame si tienes alguna pregunta.