KnockoutJS -启用绑定



此绑定用于根据指定条件启用某些基于 DOM 元素。这对于表单元素(如inputselecttextarea)非常有用。

语法

enable: <binding-value>

参数

  • 参数包含布尔值类型的数值,决定是否启用元素。如果参数为真值或类似真值,则启用元素。

  • 非布尔值被视为松散的布尔值。这意味着 0 和 null 被视为类似假的值,而整数和非 null 对象被视为类似真的值。

  • 如果参数中的条件包含任何可观察值,则每当可观察值更改时,都会重新评估条件。相应地,相关标记将根据条件结果启用。

示例

让我们来看下面的例子,它演示了启用绑定的使用方法。

<!DOCTYPE html>
   <head>
      <title>KnockoutJS Enable Binding</title>
      <script src = "https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.3.0.js"
         type = "text/javascript"></script>
   </head>

   <body>
      <p> Enter your feedback here:<br><br>
         <textarea rows = 5 data-bind = "value: hasFeedback, 
            valueUpdate: 'afterkeydown'" ></textarea>
      </p>
      
      <p><button data-bind = "enable: hasFeedback">Save Feedback</button></p>

      <script type = "text/javascript">
         function ViewModel () {
            hasFeedback = ko.observable('');
         };

         var vm = new ViewModel();
         ko.applyBindings(vm);
      </script>
      
   </body>
</html>

输出

让我们执行以下步骤来查看上述代码是如何工作的:

  • 将上述代码保存到enable-bind.htm文件中。

  • 在浏览器中打开此 HTML 文件。

  • 只有当用户输入反馈后,“保存”按钮才会启用。

使用随机表达式实现启用绑定

您还可以使用随机表达式来决定是否启用元素。

示例

让我们来看下面的例子,它演示了使用随机表达式调用启用绑定的使用方法。

<!DOCTYPE html>
   <head>
      <title>KnockoutJS Enable binding</title>
      <script src = "https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.3.0.js"
         type = "text/javascript"></script>
   </head>

   <body>
      <p>Below button will be enabled only when product stock is available.</p>
      <button data-bind = "enable: productStock() > 0 ">
         Product Details
      </button>

      <script type = "text/javascript">
         function AppViewModel() {
            this.productStock = ko.observable(-10);
         };
         
         var vm = new AppViewModel();
         ko.applyBindings(vm);
      </script>
      
   </body>
</html>

输出

让我们执行以下步骤来查看上述代码是如何工作的:

  • 将上述代码保存到enable-random-bind.htm文件中。

  • 在浏览器中打开此 HTML 文件。

  • 只有当产品库存可用时,“产品详情”按钮才会启用。

knockoutjs_declarative_bindings.htm
广告