ionic-framework - 如何使用localstorage使用Ionic3更改离子列表中的按下项目背景颜色
问题描述
请帮助我,我想使用localstorage使用Ionic3更改离子列表中按下的项目背景颜色,因此单击的项目具有灰色背景,未单击的项目具有白色背景。这是我的 html 代码:
<ion-item *ngFor="let div of divs; let i = index" >
{{ div.name }}
</ion-item>
这是 ts 文件中的数组
divs: any[] = [
{ name: '1'},
{ name: '2'},
{ name: '3'},
{ name: '4'},
{ name: '5'},
{ name: '6'},
];
解决方案
不需要localstorage
这个。
您可以使用以下两种方法来满足您的要求。
- 使用
ngStyle
- 使用
ngClass
解决方案使用
ngStyle
isClicked
为数组中的每个元素保留布尔属性,divs
并在单击列表项时更改其值并ngStyle
根据isClicked
.
例子
TS
export class ExamplePage {
divs;
constructor() {
this.divs = [
{ name: '1', isClicked: false},
{ name: '2', isClicked: false},
{ name: '3', isClicked: false},
{ name: '4', isClicked: false},
{ name: '5', isClicked: false},
{ name: '6', isClicked: false},
];
}
onItemClick(div) {
if (div.isClicked) {
div.isClicked = false;
} else {
div.isClicked = true;
}
}
}
HTML
<ion-item
*ngFor="let div of divs" (click)="onItemClick(div)"
[ngStyle]="{ background: div.isClicked ? '#FF5733': '#33FF93'}">
{{ div.name }}
</ion-item>
推荐阅读
- python - 在数据帧上解码熊猫查询?
- caching - 使用缓存查询时分页不前进
- javascript - 如何使用按钮在 Angular 中构建日期选择器(示例图片)
- javascript - D3 绑定文本和 SVG
- c++ - Xcode 11 中的 Xcode 词法或预处理器问题
- powershell - 仅获取 IPv4 的 Powershell 脚本
- bash - 通过 grep shell 脚本从子文件夹复制文件
- javascript - 尝试更新到 Expo SDK 34。遇到未定义的错误不是对象(评估“_expo.constants.manifest”)
- python - 如何从给定目录加载所有模块并从每个模块运行特定功能
- angular - 使用 [routerLink] 时,角度“错误:无法匹配任何路由。URL 段”,但它适用于 this.router.navigate