我正在使用html页面和淘汰JavaScript,并尝试使用以下脚本在下拉列表中填充一些数据
HTML
<td>
<select data-bind="options:transactionType,optionsText:'typeOfTransaction', value:selectedType,optionsCaption:'Type'">
</select>
</td>
@section scripts {
<script src="~/App/transactionType.js"></script>
}
淘汰赛
var Type = function (name) {
this.typeOfTransaction = name;
};
var viewModel = {
transactionType: ko.observableArray([
new Type("Buy"),
new Type("Sell"),
new Type("None")
]),
selectedType: ko.observable() // Nothing selected by default
};
ko.applyBindings(viewModel);
但是当我运行脚本时,它给我一个异常
uncaught Error: Unable to parse bindings.
Message: ReferenceError: transactionType is not defined;
Bindings value: options:transactionType,optionsText:'typeOfTransaction', value:selectedType,optionsCaption:'Type'
我有更好的解决方法吗?
答案 0 :(得分:0)
尝试以下标记:
<td>
<select data-bind="options:$root.transactionType,optionsText:'typeOfTransaction',optionsValue:'typeOfTransaction', value:$root.selectedType,optionsCaption:'Type'">
</select>
</td>
可能是你的select
绑定在foreach
绑定之类的另一个绑定中,因为你必须明确提到$root
,以便绑定搜索视图模型的根定义中的observable 。此外,您还必须在optionsValue
元素绑定中提及select
绑定。