Knockout Bindings使用键值对在foreach中

时间:2015-05-07 13:10:16

标签: javascript knockout.js breeze

我正在使用 BreezeJs 进行淘汰赛,以便从我的本地数据库中检索和存储数据。我在这里面临的问题是foreach绑定中的键值绑定。我想要做的是在文本框中显示“名称”属性,并从我的数据库中检索相应的“Id”属性后。

  

“operator”[从breeze成功访问]是在数据库中定义的属性,其int值为1,因此我的文本框必须显示“运算符”[在我的javascript文件中定义]的相应值   即,一个记录的“减法”

var operators = [
{id: 0, name: 'addition'},
{id: 1, name: 'subtraction'},
{id: 2, name: 'division'},
{id: 3, name: 'multiplication'}
   ];

我的HTML绑定

<div data-bind="foreach: jobs">
      <div>
        <label>FirstNumber :</label>
        <input data-bind="value: first_no" />
    </div>

         <div>
        <label>operator :</label>
         <input type="text" data-bind="text:operators.name, 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是我的列名  数据库和jobsobservableArray

我知道我不对,但我需要找到一些方法来解决上述问题。

注意:我正在使用 breezeJS 获取&amp;存储来自数据库的数据,这就是为什么我提到它的标签,虽然上面的问题是淘汰而不是微风。

1 个答案:

答案 0 :(得分:1)

在没有看到其余代码的情况下,代码的最大问题是使用with binding而不是foreach。 Foreach用于迭代,用于更改上下文。

<div data-bind="foreach: jobs">
      <div>
        <label>FirstNumber :</label>
        <input data-bind="value: first_no" />
    </div>

         <div>
        <label>operator :</label>
         <input type="text" data-bind="text:operators.name, 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>
相关问题