Secondo me, non è un problema di "integrazione", ma di strutturazione del codice JavaScript.
Ad esempio, quando scrivi
tu sei sicuro che quel this corrisponda all'oggetto che intendi tu?codice:this.items = data.books; this.isLoading = false;
Si tratta di una Arrow Function: hai capito bene nel dettaglio come funzionano?