我正在尝试向我的 JS 功能添加参数以在我的 QML 表单中使用它,但它不起作用。
这里工作代码:
function sum()
{
var res = 0;
var res1 = 0;
var result = 0;
for(var i = 0; i < listModel.count; i++){
res += parseFloat(listModel.get(i).trip_time);
}
for(var i1 = 0; i1 < listView.currentRow; i1++){
res1 += parseFloat(listModel.get(i1).trip_time);
}
result = res-res1;
return result;
}
但是当我尝试用这样的参数替换"trip_time"时:
function sum(column)
{
var res = 0;
var res1 = 0;
var result = 0;
for(var i = 0; i < listModel.count; i++){
res += parseFloat(listModel.get(i).column);
}
for(var i1 = 0; i1 < listView.currentRow; i1++){
res1 += parseFloat(listModel.get(i1).column);
}
result = res-res1;
return result;
}
并使用以下方法调用我的 QML 中的函数:
JS.sum(trip_time(
我收到错误:
引用错误: 未定义trip_time
我使用了很多次这种方法来添加参数,如下所示:
function hourtodec(hour)
{
var res = hour.split(":")
var hours = parseInt(res[0]);
var minutes = parseInt(res[1]);
var dec = hours+ minutes/60;
return dec;
}
而且我以前从未遇到过这个问题...
你能帮我吗?
谢谢
你没有很好地使用键对象column
:listModel.get(i).column
应该是listModel.get(i)[column]
的,你的参数应该是一个字符串:"trip_time">
function sum(column)
{
var res = 0;
var res1 = 0;
var result = 0;
for(var i = 0; i < listModel.count; i++){
res += parseFloat(listModel.get(i)[column]);
}
for(var i1 = 0; i1 < listView.currentRow; i1++){
res1 += parseFloat(listModel.get(i1)[column]);
}
result = res-res1;
return result;
}
并使用 : JS.sum("trip_time");