将函数调用到非父对象

时间:2013-08-09 00:09:01

标签: javascript qt qml

假设我有一个包含此内容的QML:

MainView {
    id: main
    Component {
        MyItem {
            // has function doSomething()
            id: item
            function doSomething() // this will work
            Child {
                function parent.doSomething() // this too
                function item.doSomething() // and this
            }
        }
    }
    Page {
        // here is where I would like to be able to call the function
    }
}

我无法从不是孩子的任何东西调用函数doSomething(),是否可以从Page {}对象内部调用它?

对于这么糟糕的问题,我感到很遗憾,但我不确定如何以另一种方式提出这个问题。谢谢你的时间。

1 个答案:

答案 0 :(得分:2)

那是因为你包装成一个Component项,它就像一个分隔文件沙盒化var / function范围。因此,从组件内部可以访问外部,但相反的情况是不可能的。 实现你想要做的事情的唯一技巧是在外部元素中声明一个信号,在你的组件中添加一个Connections项,并在你需要触发内部函数时发出信号。