nativescript - Nativescript - 在索引处获取标签 ID
问题描述
我实际上不知道如何更好地描述这个问题的标题,但我会尽力解释自己:
我正在制作一个应用程序,用户可以在其中订购食物并将其送到家中,所以在某些时候我有一个菜单列表,在这个列表中有食物组(鲑鱼组,意大利面组等...这是一个寿司应用程序)。
所以假设我选择了鲑鱼,我将有一个如下所示的列表视图:
好吧,你可以看到那里有一个计数器,它的功能我认为很明显,我用于增加食物的代码如下:
<GridLayout row="2" rowSpan="2" col="2" rows="*" columns="40,25,40" verticalAlignment="center" horizontalAlignment="right" marginRight="10">
<Label row="0" col="0" text="+" tap="onTapPlus" verticalAlignment="center" horizontalAlignment="center" style="color:black;font-family: 'Allerta Stencil', sans-serif;font-size:20px;"></Label>
<Label id="nrItemsTakeAway" row="0" col="1" text="0" verticalAlignment="center" horizontalAlignment="center" style="color:black;font-family: 'Allerta Stencil', sans-serif;font-size:20px;"></Label>
<Label row="0" col="2" text="-" tap="onTapMinus" verticalAlignment="center" horizontalAlignment="center" style="color:black;font-family: 'Allerta Stencil', sans-serif;font-size:20px;"></Label>
</GridLayout>
我有一个加号按钮的点击事件,我有一个减号按钮的点击事件,两者都会影响 ID 为 nrItemsTakeAway 的标签......但你是否已经猜到 ID 必须是唯一的listview ...我将如何区分这个?
ps:我用的是javascript
问候
解决方案
如果你使用 NativeScript Core 风格进行开发,你应该使用 Observable 来绑定你的数据。
例如,
视图模型
import { Observable, fromObject } from 'tns-core-modules/data/observable';
import { ObservableArray } from 'tns-core-modules/data/observable-array';
export class HomeViewModel extends Observable {
items: ObservableArray<Observable> = new ObservableArray([
fromObject({ name: "Item 1", count: 1 }),
fromObject({ name: "Item 2", count: 1 }),
fromObject({ name: "Item 3", count: 1 }),
fromObject({ name: "Item 4", count: 1 }),
]);
onPlusTap(args) {
args.object.bindingContext.count += 1;
}
onMinusTap(args) {
args.object.bindingContext.count -= 1;
}
constructor() {
super();
}
}
XML
<ListView class="list-group" items="{{ items }}">
<ListView.itemTemplate>
<FlexboxLayout flexDirection="row" class="list-group-item">
<Button text="+" class="font-weight-bold" tap="{{ $parents['ListView'].onPlusTap, $parents['ListView'].onPlusTap }}"></Button>
<Label class="h3" text="{{ count }}"></Label>
<Button text="-" class="font-weight-bold" tap="{{ $parents['ListView'].onMinusTap, $parents['ListView'].onMinusTap }}"></Button>
</FlexboxLayout>
</ListView.itemTemplate>
</ListView>
items 中的每个项目现在都是一个 Observable,更新属性也会更新 UI 元素。
推荐阅读
- javascript - 为什么 setTimeout 用于 Javascript 中的计数器动画?
- python - Django Postgres ArrayField(models.IntegerField) 迁移错误
- android - Android:带有选项卡布局的导航组件
- r - 从 cv.glmnet 中提取拟合值、残差和汇总统计数据
- ios - 将 AppDelegate 类导航到另一个 ViewController
- python - 为什么自我避免步行的代码不起作用?
- java - 一个类和两个子类但不使用继承的设计模式
- java - 如何查看我在 netbeans 中使用的包的源代码?
- python - 如何在python中自动命名数据框
- apache-kafka - kafka-server-start.bat 未运行且未报告日志