捕获Knockout组件的加载事件

时间:2014-09-02 10:44:15

标签: knockout.js knockout-3.0 knockout-components

有没有办法在加载Knockout组件并将viewModel绑定到视图后捕获事件?

我想使用Knockout组件制作自定义弹出窗口,弹出窗口只应在加载完成后打开。

ko.components.loaders.unshift({
                getConfig: function (name, callback) {
                    var widgetName;
                    callback({ require: 'Popups/' + name });
                },
                loadViewModel: function (name, viewModelConfig, callback) {
                    var viewModelConstructor = function (params) {
                        var model = viewModelConfig(params);
                       //Some custom code
                        return model;
                    };
                    ko.components.defaultLoader.loadViewModel(name, viewModelConstructor, callback);
                }

            });

打开弹出窗口时

this.PopupModel.activePopup(popup);
ShowPopup(); // Makes popup visible.

2 个答案:

答案 0 :(得分:0)

是的!

this拉取请求中添加了一个名为descendantsComplete的注册组件引发的新事件。说明:

  

添加DescendantsComplete事件,组件使用该事件来通知完成情况,直到后代组件也完成为止。

用法:

<my-component data-bind="event: { descendantsComplete: doSomething() }">
</my-component>

答案 1 :(得分:0)

从3.5.0版开始,您可以使用以下命令:https://knockoutjs.com/documentation/binding-lifecycle-events.html