Activities of "jackmcelhinney"

  • ABP Framework version: v8.3.2
  • UI Type: Angular
  • Database System: EF Core SQL Server
  • Tiered (for MVC) or Auth Server Separated (for Angular): no

Hello. After upgrading to 8.3.2 (also with 8.3.1), I get the following error in the routing module:

Error: src/app/app-routing.module.ts:190:29 - error TS2322: Type 'Promise<Type<any> | NgModuleFactory<...> | Routes | DefaultExport<Type<any>> | DefaultExport<Routes> | NgModuleFactory<...>>' is not assignable to type 'Type<any> | NgModuleFactory<any> | Routes | Observable<Type<any> | Routes | DefaultExport<Type<any>> | DefaultExport<Routes>> | Promise<...>'.
  Type 'Promise<Type<any> | NgModuleFactory<...> | Routes | DefaultExport<Type<any>> | DefaultExport<Routes> | NgModuleFactory<...>>' is not assignable to type 'Promise<Type<any> | NgModuleFactory<any> | Routes | DefaultExport<Type<any>> | DefaultExport<Routes>>'.
    Type 'Type<any> | NgModuleFactory<...> | Routes | DefaultExport<Type<any>> | DefaultExport<Routes> | NgModuleFactory<...>' is not assignable to type 'Type<any> | NgModuleFactory<any> | Routes | DefaultExport<Type<any>> | DefaultExport<Routes>'.
      Type 'NgModuleFactory<AccountPublicModule>' is not assignable to type 'Type<any> | NgModuleFactory<any> | Routes | DefaultExport<Type<any>> | DefaultExport<Routes>'.
        Type 'NgModuleFactory<AccountPublicModule>' is not assignable to type 'NgModuleFactory<any>'.
          The types of 'create(...).componentFactoryResolver.resolveComponentFactory(...).inputs' are incompatible between these types.
            Type '{ propName: string; templateName: string; transform?: (value: any) => any; }[]' is not assignable to type '{ propName: string; templateName: string; transform?: (value: any) => any; isSignal: boolean; }[]'.
              Property 'isSignal' is missing in type '{ propName: string; templateName: string; transform?: (value: any) => any; }' but required in type '{ propName: string; templateName: string; transform?: (value: any) => any; isSignal: boolean; }'.

190         loadChildren: () => import('@volo/abp.ng.account/public').then(m => m.AccountPublicModule.forLazy())
                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/@angular/core/index.d.ts:1859:9
    1859         isSignal: boolean;
                 ~~~~~~~~
    'isSignal' is declared here.
  node_modules/@angular/router/index.d.ts:1372:44
    1372 export declare type LoadChildrenCallback = () => Type<any> | NgModuleFactory<any> | Routes | Observable<Type<any> | Routes | DefaultExport<Type<any>> | DefaultExport<Routes>> | Promise<NgModuleFactory<any> | Type<any> | Routes | DefaultExport<Type<any>> | DefaultExport<Routes>>;
                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The expected type comes from the return type of this signature.

The module is imported in my routing module the same as the startup template:

{
    path: 'account',
    loadChildren: () => import('@volo/abp.ng.account/public').then(m => m.AccountPublicModule.forLazy())
},

Using Angular ~18.1.0.

"dependencies": {
    "@abp/ng.components": "8.3.2",
    "@abp/ng.core": "8.3.2",
    "@abp/ng.oauth": "8.3.2",
    "@abp/ng.setting-management": "8.3.2",
    "@abp/ng.theme.shared": "8.3.2",
    "@angular/animations": "~18.1.0",
    "@angular/common": "~18.1.0",
    "@angular/compiler": "~18.1.0",
    "@angular/core": "~18.1.0",
    "@angular/forms": "~18.1.0",
    "@angular/localize": "~18.1.0",
    "@angular/platform-browser": "~18.1.0",
    "@angular/platform-browser-dynamic": "~18.1.0",
    "@angular/router": "~18.1.0",
    ...
    "@volo/abp.commercial.ng.ui": "8.3.2",
    "@volo/abp.ng.account": "8.3.2",
    "@volo/abp.ng.audit-logging": "8.3.2",
    "@volo/abp.ng.gdpr": "8.3.2",
    "@volo/abp.ng.identity": "8.3.2",
    "@volo/abp.ng.language-management": "8.3.2",
    "@volo/abp.ng.openiddictpro": "8.3.2",
    "@volo/abp.ng.saas": "8.3.2",
    "@volo/abp.ng.text-template-management": "8.3.2",
    "@volosoft/abp.ng.theme.lepton-x": "3.3.1",
    ...
    "rxjs": "7.8.1",
    "tslib": "~2.8.0",
    "zone.js": "~0.14.10"
},
"devDependencies": {
    "@abp/ng.schematics": "8.3.2",
    "@angular-devkit/build-angular": "~18.1.0",
    "@angular-eslint/builder": "~18.1.0",
    "@angular-eslint/eslint-plugin": "~18.1.0",
    "@angular-eslint/eslint-plugin-template": "~18.1.0",
    "@angular-eslint/schematics": "~18.1.0",
    "@angular-eslint/template-parser": "~18.1.0",
    "@angular/cli": "~18.1.0",
    "@angular/compiler-cli": "~18.1.0",
    "@angular/language-service": "~18.1.0",
    "@types/node": "~20.16.14",
    "@typescript-eslint/eslint-plugin": "~8.9.0",
    "@typescript-eslint/parser": "~8.9.0",
    ...
    "ng-packagr": "~18.1.0",
    "ngxs-schematic": "^1.1.9",
    "protractor": "^7.0.0",
    "ts-node": "~10.9.2",
    "tslint": "^6.1.3",
    "typescript": "~5.5.4"
}

I have tried, deleting yarn.lock/node_modules but no luck. Any ideas?

Thanks

Thanks, that resolved it. I had went ahead and upgraded to node v22 based on Angular 18's compatibility.

  • ABP Framework version: v9.0.2
  • UI Type: Angular
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): no

Hello, I am trying to override the default fonts imported into my project, and instead self-host them and remove the fetch to rsms.me. I was able to do this in the Angular project by removing the font-bundle imports from the angular.json file and replacing them with my own. But with authorization code flow, the login pages still use the default fonts. I have tried adding a custom font-bundle.css file under this folder structure in the Host project:

and tried adding that to the bundle configuration:

But it does not seem to override the default file:

And is still trying to pull from rsms.me

What am I missing here? Thanks!

  • ABP Framework version: v9.2.4
  • UI Type: Angular
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): no

After upgrading to ABP 9.2.4, the 'My Account' button in the menu now redirects to the MVC's profile management page even though I have the AccountLayoutModule configured. To reproduce, create two new projects, 9.0.2 and 9.2.4. In both:

app.module.ts

...
AccountAdminConfigModule.forRoot(),
AccountPublicConfigModule.forRoot(),
AccountLayoutModule.forRoot(),
...

app-routing.module.ts

{
    path: 'account',
    loadChildren: () => import('@volo/abp.ng.account/public').then(m => m.AccountPublicModule.forLazy()),
},

In 9.0.2, clicking 'My Account' navigates to http://localhost:4200/account/manage, while in 9.2.4, a new tab opens with https://localhost:44305/Account/Manage. This results in custom styles and changes to manageProfileTabsService not applying. Please let me know if you are able to reproduce this issue and if there is a workaround.

Thanks that resolved it.

When only 1 language is enabled, the page titles on MVC login/reset password/etc do not show.

In the default layout code, the title is wrapped up with the check if there is more than 1 language:

@{                                
    var hasLanguageSwitch = languageInfo.Languages.Count > 1;
    ...                             
}

<div class="card mx-auto" style="max-width: 30rem;">
    <div class="card-body p-3 p-sm-4">
        @if (hasLanguageSwitch)
        {                                        
            <div class="align-items-start d-flex justify-content-between mb-2">                                            
                <h2 class="lpx-main-title lpx-login-title m-0 me-auto"> @PageLayout.Content.Title </h2>                                                     
                <div class="dropdown btn-group ms-auto" aria-labelledby="languageDropdown">
                    <button class="btn btn-sm btn-light dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">                                                   
                        <i class="bi bi-translate me-1"></i> @languageInfo.CurrentLanguage.DisplayName
                    </button>
            ...
        }
    </div>
</div>

I've fixed this by overriding the layout, moving the @if block to not include the page title, but I would prefer this be fixed in the source so I don't need to override if not necessary. Fix:

@{                                
    var hasLanguageSwitch = languageInfo.Languages.Count > 1;
    ...                             
}

<div class="card mx-auto" style="max-width: 30rem;">
    <div class="card-body p-3 p-sm-4">
                                               
        <div class="align-items-start d-flex justify-content-between mb-2">                                            
            <h2 class="lpx-main-title lpx-login-title m-0 me-auto"> @PageLayout.Content.Title </h2>                                                     

            @if (hasLanguageSwitch)
            { 
                <div class="dropdown btn-group ms-auto" aria-labelledby="languageDropdown">
                    <button class="btn btn-sm btn-light dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">                                                   
                        <i class="bi bi-translate me-1"></i> @languageInfo.CurrentLanguage.DisplayName
                    </button>
                ...
            }
        </div>
    </div>
</div>

Showing 41 to 46 of 46 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.3.0-preview. Updated on March 13, 2026, 09:01
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.