Mvvm 使用knockout.js将单击事件从一个视图模型传递到另一个视图模型

Mvvm 使用knockout.js将单击事件从一个视图模型传递到另一个视图模型,mvvm,knockout.js,Mvvm,Knockout.js,我使用Knockout.JS站点()中的分页网格示例来构建网格。我在网格模板中声明了一个click事件,如下所示(click:goBackward):- self.NEGridViewModel.goBackward = function () { alert('I m Backward') }; 如果网格是视图模型的子对象,那么在寻呼机模板中,需要执行类似于单击:$parent.goBackward或单击:$root.goBackward的操作,以绑定位于更高范围级别

我使用Knockout.JS站点()中的分页网格示例来构建网格。我在网格模板中声明了一个click事件,如下所示(click:goBackward):-

self.NEGridViewModel.goBackward = function () {
        alert('I m Backward')
    };

如果网格是视图模型的子对象,那么在寻呼机模板中,需要执行类似于
单击:$parent.goBackward
单击:$root.goBackward
的操作,以绑定位于更高范围级别的函数。

好的,我修复了它。非常简单,只需定义调用viewmodel的方法,如下所示,它的工作原理很好

self.NEGridViewModel.goBackward = function () {
        alert('I m Backward')
    };

我试过这样做,但不起作用。如果我将这个方法全局地放在它被调用的任何视图模型之外,但是如果它是在调用的视图模型中定义的,那么它就不是了。您能在JSFIDLE中放一些东西来演示这个问题吗?有一件事可以帮助您理解绑定时,
$parent
$root
的含义。可以很容易地在单击绑定旁边放置一个假绑定,如
click:$root.goBackward,blah:console.log($root)
self.NEGridViewModel.goBackward = function () {
        alert('I m Backward')
    };