如何将未在main.qml文件中定义的项目附加到我的ListModel中

时间:2018-10-01 18:06:29

标签: javascript qt qml

假设我在A.qml中有一个ListModel组件:

ListModel {
    id: alphabetModel
}

我有一个单独的JS文件,可将项目附加到我的ListModel中:

alphabetModel.append({"Letter": "A"});

如果我运行代码,会出现参考错误:

ReferenceError: alphabetModelis not defined

我知道,如果我的ListModel位于main.qml中,并且我确实将JS文件导入到A.qml中,则不会收到ReferenceError。

解决该参考错误的任何方法吗?

1 个答案:

答案 0 :(得分:0)

Including a JavaScript Resource from Another JavaScript Resource

以下示例来自上面的链接:

import QtQuick 2.0
import "script.js" as MyScript

Item {
 width: 100; height: 100

MouseArea {
    anchors.fill: parent
    onClicked: {
        MyScript.showCalculations(10)
        console.log("Call factorial() from QML:",
            MyScript.factorial(10))
    }
}
}

script.js

// script.js
Qt.include("factorial.js")
function showCalculations(value) {
  console.log("Call factorial() from script.js:"),factorial(value));
}

factorial.js

// factorial.js
function factorial(a) {
 a = parseInt(a);
 if (a <= 0)
    return 1;
 else
    return a * factorial(a - 1);
}