我正在使用BreezeJs进行淘汰,以便从我的本地数据库中检索和存储数据。我在这里面临的问题是菜单中的键值绑定。 我想要做的是显示并从选择菜单中选择'名称'属性,并将相应的'Id'属性存储到我的数据库中。
直到现在我正在尝试
var operators = [
{id: 0, name: 'addition'},
{id: 1, name: 'subtraction'},
{id: 2, name: 'division'},
{id: 3, name: 'multiplication'}
];
//我的html绑定
<select data-bind="options: $root.operators , optionText: 'name', optionvalue: 'Id', value: operator"/>
//这里'operator'是数据库中的colomnName,我试图以整数格式存储这个东西。
但根据我的代码,它显示输出为
[object object]
如何从选择菜单中显示和选择'name'属性[varchar]并将相应的'id'属性[int]存储到我的数据库中来解决此问题。
// @ TSV
html绑定
<div data-bind="with: jobs">
<div>
<label>FirstNumber :</label>
<input data-bind="value: first_no" />
</div>
<div>
<label>operator :</label>
<select data-bind="options: $root.operators , optionsText: 'name', optionsValue: 'id', value: $root.operator"/>
</div>
<div>
<label>Second Number:</label>
<input data-bind="value: second_no" />
</div><div>
<label>Result :</label>
<input data-bind="value: result" />
</div></div>
//这些(result,second_no,operator,first_no)是我数据库中的列名,'jobs'是observableArray。
注意:我正在使用breezeJS获取&amp;存储来自数据库的数据,这就是为什么我提到它的标签,虽然上面的问题是淘汰而不是微风。
答案 0 :(得分:3)
此代码适用于我:
var operators = [
{id: 0, name: 'addition'},
{id: 1, name: 'subtraction'},
{id: 2, name: 'division'},
{id: 3, name: 'multiplication'}
];
ko.applyBindings({ operators: operators, operator: ko.observable(2) });
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/2.3.0/knockout-min.js"></script>
<select data-bind="options: $root.operators, optionsText: 'name', optionsValue: 'id', value:
$root.operator"/>
&#13;
我已修补了您的代码中的以下问题:在&#34; division&#39;}&#34;之后插入逗号,更正&#34; optionsText&#34;和&#34; optionsValue&#34; params,optionsValue应该是&#39; id&#39;。