在Foreach循环中使用IF条件来比较数据绑定值

时间:2015-01-08 18:20:16

标签: javascript if-statement foreach knockout-2.0

我需要比较ForEach循环中从db返回的值。我不确定如何提取这个值(即将其存储在变量中)并将其用于比较。

<tbody data-bind="foreach: ContractorList">
                            <tr>
                                <td>
                                    <a href="#" data-bind="text: Contractor_Name, click: $root.listContractorDetails"></a>
                                    <span data-bind="text:Contractor_Status"></span>
                                    <span data-bind="if: some-syntax?? ">1</span>
                                    <span data-bind="if: same-syntaxt??">2</span>
                                </td>
                            </tr>
                        </tbody>
                    </table>

data-bind =&#34; text:Contractor_Status&#34;返回&#34;注册&#34;或者&#34;被拒绝&#34;,如果已注册我想显示span 1 else span 2.请帮我解释一下语法。

2 个答案:

答案 0 :(得分:0)

ContractorList中的每个承包商都应该在if绑定中拥有您想要的所有属性。

 // where 'x' is a property of each contractor:
 <span data-bind="if: x == 1">1</span>
 <span data-bind="if: x == 2">2</span>

可以使用视图模型源代码中的Array.prototype.forEach添加这些属性,如下所示:

var myViewModel = function() {
   // I'm sure you're populating this from a JSON source or who knows...
   this.ContractorList = ko.observableArray(); // or ko.observableArray([{}, {}, {}})...

   this.ContractorList.forEach(function(contractor) {
      // It's just a sample, you should set whatever you want in a property that you want
      // to use in an 'if' binding
      contractor.x = 1;
   });
};

答案 1 :(得分:0)

我在HTML文件中使用IF条件而不是解决问题的.js文件。 请不要以下(为了避免我犯的错误) 关闭tages 双等于(与===相比) get参数()

<tbody data-bind="foreach: ContractorList">
                            <tr>
                                <td>
                                    <!-- ko if: (ContractorStatusList() == 'Enrolled')-->
                                    <span>1</span>
                                    <!--/ko -->
                                    <!-- ko if: (ContractorStatusList() == 'Rejected')-->
                                    <span>2</span>
                                    <!--/ko -->