Javascript 敲除下拉选项渲染回调
我一直使用它,它要求对Javascript 敲除下拉选项渲染回调,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我一直使用它,它要求对项调用一些js。现在,我用Knockout呈现我的select列表 这是用于在选定下拉列表中转换标准下拉列表的代码 $(dropdownSelectorOrElement).Chosen() 我需要知道Knockout何时完成了的渲染,以便调用上面的代码:可能的话,回调函数应该引用本身,这样我就可以在不使用选择器的情况下通过 Knockout公开了选项afterrender回调(有文档记录:请参见“注释2”),但是: 每次渲染选项时都会调用options afterre
项调用一些js。现在,我用Knockout呈现我的select列表
这是用于在选定下拉列表中转换标准下拉列表的代码
$(dropdownSelectorOrElement).Chosen()
我需要知道Knockout何时完成了
的渲染,以便调用上面的代码:可能的话,回调函数应该引用
本身,这样我就可以在不使用选择器的情况下通过
Knockout公开了选项afterrender
回调(有文档记录:请参见“注释2”),但是:
- 每次渲染选项时都会调用
options afterrender
仅提供对选项元素的引用选项AfterRender
options afterrender
的东西,但只有在整个
完成渲染后才调用。击倒有这样的吗
我准备了一个示例,说明了我在上找到的自定义绑定解决的
选项AfterRender
请注意,如果您不使用
ko.unwrap
,更新功能将不会启动,因为有人告诉我有关此问题的问题。还可以创建afterRender绑定:
ko.bindingHandlers.afterRender = {
update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
allBindings.get('afterRender').call(viewModel, element);
}
};
基于这一观点:
<select data-bind="
options: Options,
value: selection,
optionsText: 'text',
optionsValue: 'value',
afterRender: renderCallback
"></select>
<span data-bind="text: selection"></span>
我希望能有所帮助。谢谢,这很有效,但不幸的是,并非总是如此。它取决于valueAccessor()可观察的绑定和订阅的顺序。这是不适用于knockout 3.4的,除非您已订阅回调或绑定中可观察的模型。
<select data-bind="
options: Options,
value: selection,
optionsText: 'text',
optionsValue: 'value',
afterRender: renderCallback
"></select>
<span data-bind="text: selection"></span>
function viewModel() {
this.renderCallback = function (selectElement) {
console.log('call');
};
this.Options = [{
text: "abee",
value: "123"
} ...
};