有没有办法使用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对象。
这可能吗?
答案 0 :(得分:0)
我做了一些测试,我认为你不能动态修改状态列表(看起来它是一个对象,内部没有数组)!?
这是我的测试: 创建一个动态状态(使用组件模板)
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?
你可以迭代所有现有状态和所有状态,但似乎状态对象不可更改或我在这里遗漏了什么?