QML - 导入的 JS 对象不可通知

QML - Imported JS object not notifiable

我制作了一个包含对象的 JS 文件:

myObject {
    myVar: "hello"
}

然后我在 QML 中导入:

import "myObject.js" as SomeObjects
Rectangle {
    Text {
        color: "red"
        text: SomeObjects.myObject.myVar        
    }
}

但是如果我这样做 SomeObjects.myObject.myVar = "goodbye" QML 中的文本组件将不会更新。所以这一定意味着 JS 对象是不可通知的。

使用 QML 在导入文件中存储通知变量的最佳方式是什么?

Javascript 对象没有 属性 绑定这样的功能。所以唯一的办法就是使用QML对象。如果你有任何JS计算,你可以把它放在不同的js文件中。

import "myObject.js" as SomeObjects

QtObject {
    id: myObject
    property string myVar: ""
    function someCalculation () {
        SomeObjects.somefunction(myVar);
    }
}

Text {
    text: myObject.myVar
}

Component.onCompleted: {
    myObject.myVar = "Hello"
}