Olá, boa tarde. Recentemente estou aplicando os conseitos de signal em um projeto que estou desenvolvendo. Mas estou tendo problema ao obter e exibir os dados em um template. No caso ao usar o signal era pra varievel productsSgnal ser chamada e reconhecida como uma função no template como esta exposto, mas aparece um erro no console do navegador dizendo que productsSgnal não é reconhecido como uma função.Ou seja parece que o signal não funciona. Estou usando O PrimeNG no template.Se alguem souber resolver esse caso, desde já agradeço.
Estarei mostrando os detalhes do código:
@Component({
selector: 'app-products-table',
templateUrl: 'products-table.component.html',
styleUrls: ['products-table.component.scss'],
providers: [MessageService, ConfirmationService],
})
export class ProductsTableComponent implements OnInit{
private productsService = Inject(ProductsService);
public productsSgnal = this.productsService.productsSgnal;
}
@Injectable({
providedIn: 'root',
})
export class ProductsService {
httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + localStorage.getItem('token')
})
};
public http = inject(HttpClient);
public productUrl = AppConstants.getbaseUrlPath +'product/';
private product$ = this.http.get<GetAllProductsResponse[]>(this.productUrl,this.httpOptions)
public productsSgnal = signal(this.product$);
}
<p-table
#dt
[value]= "productsSgnal()"
[rows]="10"
[paginator]="true"
[globalFilterFields]="['name', 'country.name', 'representative.name', 'status']"
[tableStyle]="{ 'min-width': '75rem' }"
[(selection)]="selectedproductss"
[rowHover]="true"
dataKey="id"
currentPageReportTemplate="Showing {first} to {last} of {totalRecords} entries"
[showCurrentPageReport]="true"
>```