假设我有一个包含以下内容的 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 {}
对象内部调用它?
我很抱歉这个问题写得这么糟糕,但我不确定如何用另一种方式表达它。感谢您抽出时间。
最佳答案
那是因为您包装到了一个组件项中,它的作用就像一个单独的文件沙箱,对 var/function 范围进行沙箱处理。因此,您可以从组件内部访问外部,但反之则不可能。 实现您想要做的事情的唯一技巧是在外部元素中声明一个信号,在组件内添加一个 Connections 项,并在需要触发内部函数时触发您的信号。
关于javascript - 调用非父对象的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18138287/