是否有任何方法可以使用 javascript 循环动态创建状态对象。
结果应该是这样的:
states: [
State{
name: "name1"
when: somevar === onevar
//stuff
},
State{
name: "name2"
when: somevar === anothervar
//stuff
}
]
但我想从任意 javascript 数组开始,比如
var myStatesObj = [{
"name": "name1"
"condition": onevar
},{
"name": "name2"
"condition": anothervar
}]
并使用循环创建状态 QML 对象。
这可能吗?
最佳答案
我做了一些测试,我不认为你可以动态修改状态列表(看起来它是一个对象,内部没有数组)!?
这里是我的测试: 创建一个动态状态(确实适用于组件模板)
Component {
id: stateTemplate
State {}
}
// then use this code to create an state object
var st = stateTemplate.createObject(parent, { name: "testSate", when: yourCondition })
尝试添加状态
states.push(st) // error because "states" is not an array!?
states[states.length] = st // no error but the stages object didn't change at all?
您可以遍历所有现有状态和所有内容,但状态对象似乎不可更改,或者我在这里遗漏了什么?
关于javascript - 如何使用 JavaScript 动态定义 QML 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22915235/