2013-02-17 68 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

相关问题