Knockout js 条件选项绑定
Knockout js conditional options binding
在 Knockoutjs 中,是否可以为选项绑定的子元素设置条件
例如:
viewModel.array([{name: 1, show: true}, {name: 2, show: false}, {name: 3, show: true}]);
<select data-bind="options: array, optionsText: name, if: show"></select>
将显示在选择框中:
1
3
查看此演示
你可以这样做:
<select data-bind="value: selectedCountry , foreach : countryArray" >
<!-- ko if: show -->
<option data-bind="value : name, text : name "></option>
<!-- /ko -->
</select>
function viewModel() {
var self = this;
this.countryArray = ko.observableArray([{"name" : "France" ,"show" : true},
{"name" : "Italy" , "show" : true},
{"name":"Germany" , "show" : false}]);
this.selectedCountry = ko.observable("");
}
$(document).ready(function() {
var vm = new viewModel();
ko.applyBindings(vm);
})
试试这个演示
这是 2017 年的更新: 执行此操作的最佳方法(尤其是没有无容器条件绑定)来自后处理选项绑定的挖空文档,使用 optionsAfterRender 绑定。 选项后渲染是在 2.3 版中添加
的您的代码如下所示:
<select data-bind="value: selectedCountry , options : countryArray, optionsText: 'name', optionsAfterRender: setOptionsShow" ></select>
function viewModel() {
var self = this;
this.countryArray = ko.observableArray([{"name" : "France" ,"show" : true},
{"name" : "Italy" , "show" : true},
{"name":"Germany" , "show" : false}]);
this.selectedCountry = ko.observable("");
this.setOptionsShow = function(option, item) {
ko.applyBindingsToNode(option, {visible: item.show}, item);
}
}
$(document).ready(function() {
var vm = new viewModel();
ko.applyBindings(vm);
})
相关文章:
- 重置为下拉菜单中的未绑定选项
- 在dojo中将数据从一个选项卡绑定到另一个选项卡(打开选项卡?)
- Knockout js 条件选项绑定
- 为什么我的淘汰选项绑定不起作用
- 挖空选项对象绑定
- 选择/选项 ng-model 未绑定 ng-selected
- 如何刷新'选项'ko多选组件中的绑定
- Magento网站-按选项排序:上下箭头与排序数据绑定,只需删除上下箭头即可
- 如何在HTML中用两个预定义的值绑定选择选项,以在mongodb中插入数据
- 如何使用淘汰选项绑定从select中删除值
- 如何设置<选项>在用数据绑定填充的选择中='选项:[..]'
- 对没有数据绑定“选项”或“标题”的选择列表进行挖空验证
- 在选择框中从任意 JavaScript 对象绑定选项值和选项文本
- 如何使用 Angular.JS 在下拉列表中绑定选项的值和文本
- 当通过AJAX绑定选项时,是否可以将select元素的默认值传递给Knockout
- Ember.使用未绑定选项列表进行选择
- AngularJS绑定选项的性能
- 双向绑定选项
- 如何在Knockout中的数据绑定选项中自动选择用户状态
- 设置默认数据绑定选项的值