Hello Gabriel,
Thank you for your patience and for reaching out.
What’s the correct way to generate Angular proxies inside module folders?
To ensure proxies are generated in the correct module folder, you can use the Angular-specific proxy generation command with these flags and parameters:
abp generate-proxy -t ng -m <module-name> -u <api-definition-url> --target <angular-project-name>
For further details on Angular proxy generation via the ABP CLI, you can refer to the official documentation: ABP CLI - Generate Proxy. Let us know if you still face issues with the proxy generation.
Is there any official documentation on using Angular in a modular monolith setup?
The official documentation for Angular integration in a modular monolith is currently being updated. It will be available the upcoming release.
Hello, apologies for the delayed response.
We created a startup template (layered with Angular) and we noticed there is a delay in loading CSS, and it takes too much time How can we avoid this delay?
I couldn’t reproduce the issue on my end. Could you please confirm whether the problem still persists? If so, kindly share additional details such as the ABP version you're using, your operating system, and the browser in question. If possible, you can also share a reproducible example of your project by emailing it to sumeyye.kurtulus@volosoft.com so we can investigate further.
Also, are there any documents that describe how to change the login page to be in Angular instead of redirecting to the backend?
Yes, you can implement a fully client-side login using the Resource Owner Password Flow. You’ll find more details in the official documentation here: https://abp.io/docs/latest/framework/ui/angular/account-module
Thank you for sharing the additional details. After reviewing your project and running a few tests, it appears that the issue stems from redundant query parameters in the URL. As a temporary workaround, we recommend sanitizing the URL before passing it to Angular’s router or any relevant authentication service.
In the meantime, you can try implementing the following provider-based approach to handle this. Please let us know if this resolves the issue on your end while we continue investigating and work toward a permanent fix.
// url-sanitizer.ts
import { provideAppInitializer } from '@angular/core';
export const SANITIZE_URL = [
provideAppInitializer(() => {
sanitizeStartupUrl();
}),
];
export function sanitizeStartupUrl() {
const currentUrl = window.location.href;
if (currentUrl.endsWith('?&&')) {
const cleanUrl = window.location.origin + window.location.pathname;
window.location.replace(cleanUrl);
}
}
// app.module.ts
@NgModule({
providers: [
...
SANITIZE_URL,
],
bootstrap: [AppComponent],
})
export class AppModule {}
Sure, I forgot sharing my address. You can email me via sumeyye.kurtulus@volosoft.com
Hello, I will check and get back to you soon. Thank you for your patience and cooperation.
Hello! You're right—the generated proxy service is reflecting the lookup properties based on the navigation fields, and in this case, it's duplicating them due to both pointing to the same model (Grade
).
This behavior comes from the controller generation pattern, which typically results in something like:
[HttpGet]
[Route("entity-one-lookup")]
public virtual Task<PagedResultDto<LookupDto<Guid>>> GetEntityOneLookupAsync(LookupRequestDto input)
{
return _entityThreesAppService.GetEntityOneLookupAsync(input);
}
The duplication issue is acknowledged and we're planning to address it in a future release. For now, the manual removal workaround is the best option—though we understand it's not ideal, especially when files are regenerated.
If you believe the issue stems more from the controller generation logic itself, feel free to share more details and I’d be happy to look into it further with you.
Yes, you can safely migrate your Angular project to use the standalone structure in Angular 19.
The components <abp-loader-bar>
and <abp-dynamic-layout>
are not standalone; they are declared and exported by the ThemeSharedModule
. Therefore, you shouldn’t encounter issues related to them during the migration.
Let us know if you need any further help.
I'm glad to hear the workaround resolved the issue.