Knockout Bindings使用Key值对

时间:2015-04-13 10:19:32

标签: knockout.js breeze

我正在使用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;存储来自数据库的数据,这就是为什么我提到它的标签,虽然上面的问题是淘汰而不是微风。

1 个答案:

答案 0 :(得分:3)

此代码适用于我:

&#13;
&#13;
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;
&#13;
&#13;

我已修补了您的代码中的以下问题:在&#34; division&#39;}&#34;之后插入逗号,更正&#34; optionsText&#34;和&#34; optionsValue&#34; params,optionsValue应该是&#39; id&#39;。