如果值大于,则敲除js隐藏按钮

时间:2013-03-22 03:23:04

标签: javascript knockout.js

我在页面加载(存储数字json数据)后定义一个变量

我可以成功地将此变量放入:

<span data-bind="text: extQty"></span>

当变量发生变化时,它会使用适当的变量更新跨度(这样可以正常工作)。

但它不会在我的启用中更新我的变量:

<p class="pull-right"><a class="btn btn-primary" data-bind="click: $root.add, enable: pagedList().length < extQty" href="#" title="edit"><i class="icon-plus"></i> Add Extension</a></p>

我需要根据提供给“extQty”的值有效禁用启用。现在我发送5到extQty,似乎变量只是在“text”数据绑定中更新,而不是“启用”数据绑定。

2 个答案:

答案 0 :(得分:3)

Knockout启用绑定不适用于锚标记

所以你有2个解决方案。

解决方案1 ​​

<a href='#' title="edit" class="btn btn-primary" data-bind='click: function() { 
 if(pagedList().length < extQty())
 {
    //call the desired method from here
 }' >

解决方案2

此按钮仅在条件成功且具有点击装订时显示

<a class="btn btn-primary" data-bind="click: $root.add, visible: pagedList().length < extQty()" href="#" title="edit">

此按钮仅在您的否定条件成功且没有点击装订时显示

<a class="btn btn-primary" data-bind="visible: pagedList().length >= extQty()" href="#" title="edit">

答案 1 :(得分:0)

尝试使用

<p class="pull-right">
    <a class="btn btn-primary" data-bind="style: { display: (pagedList().length < extQty) ? 'block' : 'none' }" 
        href="#" title="edit">
        <i class="icon-plus"></i>Add Extension
    </a>
</p>

或者@NaveenKumar指出..你可以使用可见属性......