具有多个if的击倒功能

时间:2013-07-23 09:35:26

标签: javascript knockout.js

我正在使用淘汰赛,我有一系列联系人,其中包含一系列组织对象。

组织对象属性: 例1
公司:“Zensql” 善良:“工作” newOrUpdatedField:true title:null updatedField:false

示例2完整信息 公司:“SAGI” 善良:“工作” newOrUpdatedField:false 标题:“社区经理” updatedField:false

<div id="retrievedContactsDiv" data-bind="foreach: viewModel.MoreContacts.contacts()">

          <!-- ko foreach: $data.organizations() -->

            <!-- ko ifnot: ($data.title == null) && ($data.firm == '')-->
          <span  data-bind="text: $data.title()"></span> at
          <span data-bind="text: $data.firm()"></span> <br> 
           <!-- /ko -->

            <!-- ko if:$data.title == null -->
          <span data-bind="text: $data.firm()"></span>
            <!-- /ko -->
            <!-- ko if:$data.firm == "" -->
             <span data-bind="text: $data.title()"></span>
             <!-- /ko -->

          <!-- /ko -->

我想在我有完整的信息时显示“公司名称”,如果title == null 只有公司,如果公司==“”标题只是....我试过这个代码,但没有工作......

1 个答案:

答案 0 :(得分:1)

在表达式中使用时,必须解开observable(添加())。更新您的代码如下:

      <!-- ko foreach: $data.organizations() -->

      <!-- ko ifnot: ($data.title() == null) && ($data.firm() == '')-->
      <span  data-bind="text: $data.title()"></span> at
      <span data-bind="text: $data.firm()"></span> <br> 
      <!-- /ko -->

      <!-- ko if:$data.title() == null -->
      <span data-bind="text: $data.firm()"></span>
      <!-- /ko -->
      <!-- ko if:$data.firm() == "" -->
      <span data-bind="text: $data.title()"></span>
      <!-- /ko -->

      <!-- /ko -->