簡體   English   中英

KnockoutJS“如果:”綁定無法正常工作

[英]KnockoutJS “if: ” binding not working properly

// Model
function User(item) {
  var self = this;
  this.id = ko.observable(item.id);
  this.name = ko.observable(item.name);
  this.surname = ko.observable(item.surname);
  this.email = ko.observable(item.email);
  // item.enabled is a boolean value.
  this.enabled = ko.observable(item.enabled);
  this.credit = ko.observable(new Credit(item.credit));
  this.roles = ko.observableArray(item.roles);
}    

<div data-bind='foreach: users'>
  <!-- This below prints 1 -->
  <span class='badge ' data-bind='text: enabled' ></span>

  <!-- Both of those below don't activate (if check fails) -->
  <span class='badge badge-success' data-bind='if: enabled==1'>OK</span>
  <span class='badge ' data-bind='if: enabled==0' >NO</span>
</div>

我試過了:

<span class='badge badge-success' data-bind='if: enabled==1'>OK</span>
<span class='badge badge-success' data-bind='if: enabled'>OK</span>
<span class='badge badge-success' data-bind='if: enabled()'>OK</span>
<span class='badge badge-success' data-bind='if: enabled=="1"'>OK</span>

沒有運氣。 我究竟做錯了什么?

您很近,但是正確的語法是

<span class='badge badge-success' data-bind='if: enabled() == 1'>OK</span>
<span class='badge ' data-bind='if: enabled() == 0' >NO</span>

演示JSFiddle

因為enabled是一個可觀察的(它是一個函數),所以您需要通過不帶任何參數的調用來獲取其值:在表達式中使用它時, enabled()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM