
Issue number: resolves #29640 --------- ## What is the current behavior? (Angular) If a list inside of a popover contains a disabled item and is included in the following way: ```html <ion-list> <ion-item [button]="true">Option 1</ion-item> <ion-item [button]="true" [disabled]="true">Option 2</ion-item> <ion-item [button]="true">Option 3</ion-item> </ion-list> ``` when you try to navigate using the arrow down keys, it will stop at the disabled item instead of continuing over it. Note that changing the item to the following will work: ```html <ion-item [button]="true" disabled="true">Option 2</ion-item> ``` ## What is the new behavior? Reflect the `disabled` property in the item so that when items are queried in the popover, the arrow down key skips over the disabled item. ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information This can be tested in the Angular test app by following the documentation here: https://github.com/ionic-team/ionic-framework/blob/main/docs/angular/testing.md Removing my fix in `core`, then running `npm run build` and re-syncing the test app should reproduce the problem.
@ionic/angular
Ionic Angular specific building blocks on top of @ionic/core components.
Related
License
Testing ng-add in ionic
- Pull the latest from
main
- Build ionic/angular:
npm run build
- Run
npm link
fromionic/angular/dist
directory - Create a blank angular project
ng new add-test
// Say yes to including the router, we need it
cd add-test
- To run schematics locally, we need the schematics-cli (once published, this will not be needed)
npm install @angular-devkit/schematics-cli
- Link
@ionic/angular
npm link @ionic/angular
- Run the local copy of the ng-add schematic
$ npx schematics @ionic/angular:ng-add
You'll now be able to add ionic components to a vanilla Angular app setup.
Project Structure
common
This is where logic that is shared between lazy loaded and standalone components live. For example, the lazy loaded IonPopover and standalone IonPopover components extend from a base IonPopover implementation that exists in this directory.
Note: This directory exposes internal APIs and is only accessed in the standalone
and src
submodules. Ionic developers should never import directly from @ionic/angular/common
. Instead, they should import from @ionic/angular
or @ionic/angular/standalone
.
standalone
This is where the standalone component implementations live. It was added as a separate entry point to avoid any lazy loaded logic from accidentally being pulled in to the final build. Having a separate directory allows the lazy loaded implementation to remain accessible from @ionic/angular
for backwards compatibility.
Ionic developers can access this by importing from @ionic/angular/standalone
.
src
This is where the lazy loaded component implementations live.
Ionic developers can access this by importing from @ionic/angular
.