KnockoutJS - 无容器控制流绑定初始值
KnockoutJS - containerless control flow binding initial value
我有一个选择控件,我需要在其中使用 ko:foreach 而不是通常的绑定。一切都运行良好,除了下面的"specialProperty"的初始值设置为未知,尽管选择控件设置为选项 1。当您从列表中手动选择一个选项时,它的行为符合预期。在这里小提琴:http://jsfiddle.net/aCS7D/1/
<select data-bind="value: selectedOption">
<!-- ko foreach:groups -->
<optgroup data-bind="attr: {label: label}, foreach: children">
<option data-bind="text: label, option: $data"></option>
</optgroup>
<!-- /ko -->
</select>
<div data-bind="text: specialProperty"></div>
ko.bindingHandlers.option = {
update: function(element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
ko.selectExtensions.writeValue(element, value);
}
};
function Group(label, children) {
this.label = ko.observable(label);
this.children = ko.observableArray(children);
}
function Option(label, property) {
this.label = ko.observable(label);
this.someOtherProperty = ko.observable(property);
}
var ViewModel = function() {
this.groups = ko.observableArray([
new Group("Group 1", [
new Option("Option 1", "A"),
new Option("Option 2", "B"),
new Option("Option 3", "C")
]),
new Group("Group 2", [
new Option("Option 4", "D"),
new Option("Option 5", "E"),
new Option("Option 6", "F")
])
]);
this.selectedOption = ko.observable();
this.specialProperty = ko.computed(function(){
var selected = this.selectedOption();
return selected ? selected.someOtherProperty() : 'unknown';
}, this);
};
ko.applyBindings(new ViewModel());
这是因为select
已初始化并设置了绑定value
但仅在选择时触发change
事件时才触发绑定。对此的简单解决方法是添加
$('select').trigger('change');
应用绑定后。
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 无法通过数组映射绑定
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- 访问表单控制AngularJS中的值,而不绑定数据
- Angular Google Maps - 地图控制中的双向数据绑定
- KnockoutJS - 无容器控制流绑定初始值
- 聚合物数据绑定铁 AJAX 并在控制台中访问获取的 JSON
- 奇怪的JavaScript函数绑定.此控制流是否正确
- 双向数据绑定(Angular)与单向数据流(React/Flux)
- 我得到了一个JSON/Javascript对象,因为我可以在控制台中看到它,但我如何让它序列化并使我的数据绑定到我的Ui
- 如何使用getUserMedia流中的数据更新角度绑定
- 如何将React状态绑定到RxJS可观察流
- 代码只绑定到开发人员控制台中的事件
- Ember js在重复组件中控制类绑定
- 将函数绑定到jPlayer's "next"控制
- Knockout js嵌套控制流绑定不起作用
- 如何将控制事件绑定到使用javascript原型声明的函数
- WinJS,用于脚本控制绑定的数据赢得绑定
- 从aspx页面调用绑定到用户控制的Javascript方法
- JQuery DatePicker绑定控件可以'不得包含在其他控制中