KnockoutJS - uniqueName 绑定



该绑定用于为 DOM 元素生成一个唯一名称。如果 DOM 元素没有 name 属性,此绑定会为其指定一个并将其设置为某个唯一字符串值。

你不必经常使用这个。它仅在一些罕见的情况下才有用,例如:-

  • jQuery 验证目前只会验证具有名称的元素。为了将其与 Knockout UI 配合使用,有时需要应用 uniqueName 绑定以避免混淆 jQuery 验证。

  • 如果 IE 6 中的单选按钮没有 name 属性,那么无法选中它们。KO 会在那些元素上内部使用 uniqueName 以确保能够选中它们。

语法

uniqueName: <binding-value>

参数

这里参数将为 Boolean 值 true 或 false 或是一个产生布尔值的结果表达式。对于为此参数设置为 truetrue 类值那个元素,KO 将生成一个唯一名称。

示例

让我们看一个展示 uniqueName 绑定的用法示例。

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

   <body>
      <p>Enter your pet's name: 
         <input data-bind = "value: someValue, uniqueName: true" />
      </p>
   
      <p>
         <button data-bind = "click: showMessage">Click here to read message </button>
      </p>

      <script type = "text/javascript">
         function ViewModel() {
            this.someValue = ko.observable();
         
            this.showMessage = function() {
               alert(" Nice Name"+ "\nSee rendered markup to view unique name generated!!!");
            }
         };

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

输出

让我们执行以下步骤,看看上面的代码是如何工作的:-

  • uniquename-bind.htm 文件中保存上面的代码。

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

  • 按 F12 并观察呈现的标记。唯一的名称由 KO 生成。

knockoutjs_declarative_bindings.htm
广告