2

假设我有一个包含以下内容的 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 {}对象内部调用它?

我很抱歉这个问题写得这么糟糕,但我不确定如何用另一种方式表达。谢谢你的时间。

4

1 回答 1

3

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

于 2013-08-09T06:36:58.500 回答