javascript - 调用非父对象的函数

标签 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 {} 对象内部调用它?

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

最佳答案

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

关于javascript - 调用非父对象的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18138287/

相关文章:

javascript - Chrome 扩展程序 : console. 日志检测器

javascript - 一次仅将 jquery 脚本应用于一个类

c++ - Qt中的内存管理?

c++ - Qt 小部件内存管理

qt - QML 依赖性/可重用性(静态代码)检查器

javascript - 在这种情况下,比调解器模式更好的方法来解耦小部件?

javascript - 如何对多个值使用正则表达式

c++ - 在知 Prop 体的子类类型时使用 C 风格的向下转换

c++ - 在 QML 插件中注册一个 C++ 抽象类并从 QML 中引用它

qt - 如何在 QML 中向 StackLayout 添加过渡?