Javascript 在敲除中初始化时调用组件函数

Javascript 在敲除中初始化时调用组件函数,javascript,knockout.js,knockout-components,Javascript,Knockout.js,Knockout Components,对于普通视图模型,我可以在初始化后在其上下文之外调用函数,如下所示: var ViewModel = function () { this.Foo = function () { alert("bar"); }; }; var vm = new ViewModel(); ko.applyBindings(vm); vm.Foo(); 如何对组件的视图模型执行类似操作?我想在首次加载Foo组件时调用FooComponentViewModel的Foo函数 ko

对于普通视图模型,我可以在初始化后在其上下文之外调用函数,如下所示:

var ViewModel = function () {
    this.Foo = function () {
        alert("bar");
    };
};

var vm = new ViewModel();
ko.applyBindings(vm);

vm.Foo();

如何对组件的视图模型执行类似操作?我想在首次加载Foo组件时调用
FooComponentViewModel
Foo
函数

ko.components.register("foo", {
    viewModel: FooComponentViewModel,
    template: {
        element: "component-foo"
    }
});

function FooComponentViewModel(params) {
    this.Foo = function () {
        alert("bar");
    };
}

var ViewModel = function () {
    // empty
};

var vm = ViewModel();
ko.applyBindings();

只是一个想法,将回调作为组件的参数传递:

HTML:

<foo params="callback: callback"></foo>
function FooComponentViewModel(params) {
    this.Foo = function () {
        alert("bar");
    };

    params.callback(this);
}

function ViewModel() {
    this.callback = function(vm) {
        vm.Foo();
    };
}

从未想过这一点。好主意!我将等几天,看看是否还有其他想法。感谢我们在调用组件方法时遇到的情况。让我们的ComponentVm公开方法doSmth(arg1,arg2)。对于如何根据淘汰思想在组件外部访问此方法,您有什么想法吗?