nativescript - 我可以在 radListView.itemTemplates 中使用源项值吗
问题描述
我正在我的页面上创建一个 radListView 数组,对于每个 radList,我实现了一个“radListView.itemTemplates”,如下所示:
radListView.itemTemplates = [
{
key: "notaBaixa",
createView: () => {
const gridLayout = new GridLayout();
gridLayout.addColumn(new ItemSpec(1, GridUnitType.STAR));
gridLayout.addColumn(new ItemSpec(1, GridUnitType.AUTO));
gridLayout.addColumn(new ItemSpec(1, GridUnitType.AUTO));
gridLayout.verticalAlignment = "middle";
gridLayout.css = "border-bottom-width:1px; border-bottom-color:black;";
const lblDisciplina = new Label();
lblDisciplina.col = 0;
lblDisciplina.setInlineStyle("padding:10px 0 0 10px; height:60px;");
lblDisciplina.verticalAlignment = "middle";
lblDisciplina.text = "{{disciplina}}";
const lblnotaTotal = new Label();
lblnotaTotal.col = 1;
lblnotaTotal.setInlineStyle("padding:10px 0 0 10px; height:60px; color: red;");
lblnotaTotal.verticalAlignment = "middle";
lblnotaTotal.text = "{{nota_total}}";
const lblFaltasTotal = new Label();
lblFaltasTotal.col = 2;
lblFaltasTotal.setInlineStyle("padding:10px 0 0 10px; height:60px;");
lblFaltasTotal.verticalAlignment = "middle";
lblFaltasTotal.text = "{{faltas_total}}";
gridLayout.addChild(lblDisciplina);
gridLayout.addChild(lblnotaTotal);
gridLayout.addChild(lblFaltasTotal);
return gridLayout;
}
},
{
key: "notaAlta",
createView: () => {
const gridLayout = new GridLayout();
gridLayout.addColumn(new ItemSpec(1, GridUnitType.STAR));
gridLayout.addColumn(new ItemSpec(1, GridUnitType.AUTO));
gridLayout.addColumn(new ItemSpec(1, GridUnitType.AUTO));
gridLayout.verticalAlignment = "middle";
gridLayout.css = "border-bottom-width:1px; border-bottom-color:black;";
const lblDisciplina = new Label();
lblDisciplina.col = 0;
lblDisciplina.setInlineStyle("padding:10px 0 0 10px; height:60px;");
lblDisciplina.verticalAlignment = "middle";
lblDisciplina.text = "{{disciplina}}";
const lblnotaTotal = new Label();
lblnotaTotal.col = 1;
lblnotaTotal.setInlineStyle("padding:10px 0 0 10px; height:60px; color: blue;");
lblnotaTotal.verticalAlignment = "middle";
lblnotaTotal.text = "{{nota_total}}";
const lblFaltasTotal = new Label();
lblFaltasTotal.col = 2;
lblFaltasTotal.setInlineStyle("padding:10px 0 0 10px; height:60px;");
lblFaltasTotal.verticalAlignment = "middle";
lblFaltasTotal.text = "{{faltas_total}}";
gridLayout.addChild(lblDisciplina);
gridLayout.addChild(lblnotaTotal);
gridLayout.addChild(lblFaltasTotal);
return gridLayout;
}
}
];
如您所见,在我的标签中,我试图获取源项目的某些属性,但标签不理解为属性。如何将标签文本值设置为项目源属性?
解决方案
请参考数据绑定文档。您使用的语法仅在 XML 上有效,XML 解析器将解释语法并启动元素和数据模型之间的绑定。
您必须在目标元素上调用bind
方法并传递源和目标属性以编程方式执行相同操作。
例如,
lblDisciplina.text = "{{disciplina}}";
应该
lblDisciplina.bind({
sourceProperty: "disciplina",
targetProperty: "text",
twoWay: false
});
推荐阅读
- database-design - Neo4j(或任何图形数据库)是否应该对每个关系进行建模,即使关系可以通过图形确定
- javascript - 更改类前触发事件
- vagrant - PhpStorm + Xdebug:连接已建立,PhpStorm 中没有弹出调试窗口
- c++ - 如何读取 infile 中的指令,然后使用 infile 中的参数将函数形状写入 outfile
- laravel - Laravel - 使用从中间件组返回的值作为全局变量
- mysql - 如何删除mysql中的唯一记录?
- dart - 谁能告诉我如何在 Flutter 中使用 DropDown Menu 中的本地 JSON 数据?
- php - mPDF 错误:不适用于服务器、阿里巴巴
- python - 熊猫:无法访问粗体列值
- java - Java Hashmap 中有什么理由在 TREEIFY_THRESHOLD 上有 8 个吗?