我正在尝试为我的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)
我收到错误:
ReferenceError:未定义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;
}
我以前从未遇到过这个问题......
你能帮我吗?
非常感谢
答案 0 :(得分:0)
您没有以良好的方式使用密钥对象listModel.get(i)[column]
: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");
,您的参数应为字符串:&#34; trip_time&#34;
public static class Catch
{
public static Exception Exception(Action action)
{
Exception exception = null;
try
{
action();
}
catch (Exception ex)
{
exception = ex;
}
return exception;
}
}
&#13;
并使用:// ACT
var actualException = Catch.Exception(() => DoSomething())
// ASSERT
Assert.IsNotNull(actualException, "No exception thrown");
Assert.IsInstanceOfType(actualException, expectedType);
Assert.AreEqual(expectedExceptionMessage, actualException.Message);