迭代状态并不适合我

时间:2015-09-15 15:30:22

标签: javascript qt qml qtquick2

我有一个包含多个StateGroup s的项目:

MyObject.qml

    import QtQuick 2.0

    Item
    {
        id: root

        property alias myStates: myStateGroup.states

        // ..

        StateGroup
        {
            id: myStateGroup
            states:
            [
                State
                {
                    name: "first"
                },
                State
                {
                    name: "second"
                },
                State
                {
                    name: "third"
                }
            ]
        }
    }

我想迭代状态名称:(在另一个文件中)

Component.onCompleted:
{
    for (var i in instance.myStates)
    {
        console.log(JSON.stringify(i))
        console.log(i.name)
        //....
    }
}

我得到的是

"0"
undefined
"1"
undefined
"2"
undefined

我想迭代各州的名字。我得到整数而不是State的错误是什么? 我知道我可以使用简单的C-like,但这看起来非常糟糕。我想使用for ... in语法。

1 个答案:

答案 0 :(得分:3)

请尝试以下操作:

Component.onCompleted:
{
    for (var i in instance.myStates)
    {
        console.log(instance.myStates[i].name)
    }
}

for..in放入i数组项属性名称值。在这种情况下,它只是整数。