KnockoutJS在绑定完成后触发回调
KnockoutJS fire callback after bindings are complete
我有一个非常烦人的bug,它在这里概述:<选择>只显示所选选项的第一个字符,我需要一种方法来删除显示:没有任何框可以避免这个错误。有什么建议吗?
以下是绑定:
<select data-bind="options: Values, optionsText: 'DisplayNameWithCost', optionsCaption: ControlCaption, selectedOptions: SelectedValues, event: { change: $root.resolveAllAttributeUi }, disable: IsDisabled"></select>
编辑:我已经设法弄清楚了这是因为selectedOptions: SelectedValues
是空的,并且它没有在IE9中选择任何内容。至于修复方法,我不确定。下面是IE9中的一个示例http://jsfiddle.net/9CaTa/
selectedOptions
仅用于多选列表。看见http://knockoutjs.com/documentation/selectedOptions-binding.html.
您可能希望使用value
绑定:http://jsfiddle.net/mbest/9CaTa/2/
编辑:
selectedOptions
不能很好地与optionsCaption
配合使用,但您可以通过创建一个封装selectedOptions
:的自定义绑定,使其在默认情况下至少选择第一项
ko.bindingHandlers.mySelectedOptions = ko.utils.extend({}, ko.bindingHandlers.selectedOptions);
ko.bindingHandlers.mySelectedOptions.update = function(element) {
ko.bindingHandlers.selectedOptions.update.apply(this, arguments);
if (element.selectedIndex === -1)
element.selectedIndex = 0;
}
以下是您使用此绑定的示例:http://jsfiddle.net/mbest/9CaTa/3/
我注意到,如果我选择标题,selected
数组将不会被清除。相反,它将有一个单独的undefined
项目。如果你不想这样,你也可以在自定义更新函数中检查它,然后清除数组:http://jsfiddle.net/mbest/9CaTa/4/
相关文章:
- 为什么prototypjs观察到回调函数有绑定
- 在Backbone.js中将回调绑定到此
- 将web服务回调的结果绑定到Javascript中的调用函数
- 将回调绑定到没有隔离作用域的指令
- 将其绑定在 backbone.js 中的 jQuery 回调中
- 将类方法绑定到类外绑定的事件处理程序内的AJAX成功回调
- KnockoutJS在绑定完成后触发回调
- 使用闭包/函数绑定将自函数作为回调传递
- 当通过Ajax成功回调更新可观察数组时,启用绑定中断
- 异步加载ASP.NET绑定的Javascript,然后调用回调
- 绑定promise回调函数的“this”范围
- 处理Ember中操作中的事件绑定和回调
- 如何绑定'这'到react类之外的函数,后者是来自其他组件的回调
- G+ 登录按钮回调绑定两次
- Backbone.js On Trigger回调绑定未按预期工作
- 在javascript中使用promise和原型时,优雅的回调绑定
- 将函数回调绑定到剑道网格
- 将ES7异步回调绑定到父作用域上下文的最简洁的方法是什么?
- Angular 1.5组件回调绑定没有执行
- 将回调绑定到 DynamoDB DocumentClient 的 ReactJS 状态