2013-02-17 58 views
4

下面是一些表代碼。我不想行顯示,如果該數據項的編號爲0。我試着寫這樣的:KnockoutJS可見不工作對我來說

數據綁定=「可見:$ data.Id> 0」

但這不起作用。也沒有把0放在引號中。我也試過:

數據綁定=「可見:$指數> 0」

但是,讓所有的行走開!我敢肯定,這是一個簡單的語法問題,但我沒有看到它...

<table> 
     <thead> 
      <tr> 
       <th>Name</th> 
       <th>URL</th> 
       <th>Disabled</th> 
       <th>Parent</th> 
       <th></th> 
      </tr> 
     </thead> 
     <tbody data-bind="foreach: menuItemModels"> 

      <tr data-bind="visible: $data.Id > 0"> 

       <td> 
        <input type="text" class="input-block-level" data-bind="value: $data.Name" /></td> 
       <td> 
        <input type="text" class="input-block-level" data-bind="value: $data.Url" /></td> 
       <td style="text-align: center;"> 
        <input type="checkbox" data-bind="value: $data.Disabled" /></td> 
       <td>      
        <select data-bind="options: $root.menuItemModels, optionsValue: 'Id', optionsText: 'Name', value: ParentId"></select> 
       </td> 
       <td> 
        <button class="btn btn-primary" type="submit"data-bind="click: $root.update">Update</button> 
        <button class="btn btn-primary" type="submit" data-bind="click: $root.remove">Delete</button> 
       </td> 
      </tr> 
     </tbody> 
    </table> 

回答

9

當您在表達式中訪問一個可觀察的價值,那麼你需要調用它的功能。

如果Id是可觀察的,那麼您需要將它稱爲$data.Id() > 0

visible綁定確實工作,但值是真的/假的,所以你真的可以把它減少到visible: Id。當你將一個簡單的observable傳遞給綁定(而不是表達式)時,Knockout會爲你解開它(作爲函數調用它)。

$index也是可觀察的,所以它會是相同的想法,如:visible: $index

相關問題