【发布时间】:2016-10-31 07:35:24
【问题描述】:
我正在开发“Form Builder”应用程序,我可以在其中为每个控件设置规则。
我正在尝试从我保留为对象的selectedValue 中选择下拉值。但它不起作用。
为了深入了解我的问题,这是我之前的问题,您可以清楚地了解我的问题:
Show/Hide based on Dropdown selection in knockoutJS with model inside another model
这是我为填充下拉值而设计的小提琴(当前问题):
https://jsfiddle.net/vikash208/6b6ntoam/20/
我尝试了什么:
HTML 代码:
<div class="tab-content" data-bind="with: TextBoxModel">
<div class="tab-pane" id="rules" data-bind="with: rules">
<div data-bind="foreach: ruleList">
<div class="form-group col-md-12">
<div class="col-sm-3">
<select class="form-control" data-bind="options: $parent.ruleConditions, optionsText: 'Name', value: selectedCondition, optionsCaption: 'Choose condition'"></select>
</div>
<div class="col-md-5" data-bind="visible: isExpressionValueRequired()">
<input type="text" class="form-control" data-bind="value: expressionValue" />
</div>
</div>
</div>
分配 selectedOption 的 KnockoutJS:
var RuleConditionArray = {
// Options for "Text Field" under Rules tab
textField: ko.observableArray(
[
{ Name: 'is filled out',
Value: 'isfilledout',
isExpressionValueRequired: false
},
{
Name: 'is not filled out',
Value: 'isnotfilledout',
isExpressionValueRequired: true
}
]
)
};
function Rule() {
var rule = this;
//For Expression input field
rule.expressionValue = ko.observable("");
//Keep track of selected ruleConditions - returns "Condition object"
rule.selectedCondition = ko.observable({ Name: 'is filled out', Value: 'isfilledout', isExpressionValueRequired: false });
//This is computed value to show/hide Expression input field
rule.isExpressionValueRequired = ko.computed(function () {
return this.selectedCondition() && this.selectedCondition().isExpressionValueRequired
}, this);
};
从上面的knockoutJS代码,我通过了
{
Name: 'is filled out',
Value: 'isfilledout',
isExpressionValueRequired: false
}
selectedCondition 中的对象。但它不起作用。
我想要什么:
我需要传递对象作为参数来选择下拉值。请帮我解决这个问题。
【问题讨论】:
标签: javascript jquery knockout.js formbuilder