假设我有一个包含此内容的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 {}
对象内部调用它?
对于这么糟糕的问题,我感到很遗憾,但我不确定如何以另一种方式提出这个问题。谢谢你的时间。
答案 0 :(得分:2)
那是因为你包装成一个Component项,它就像一个分隔文件沙盒化var / function范围。因此,从组件内部可以访问外部,但相反的情况是不可能的。 实现你想要做的事情的唯一技巧是在外部元素中声明一个信号,在你的组件中添加一个Connections项,并在你需要触发内部函数时发出信号。