QML - 导入的JS对象无法通知

时间:2015-01-21 14:06:39

标签: javascript qml

我用对象创建了一个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在导入的文件中存储可通知变量的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

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"
}