码迷,mamicode.com
首页 > 其他好文 > 详细

knockout为绑定元素生成id

时间:2018-07-21 17:23:43      阅读:491      评论:0      收藏:0      [点我收藏+]

标签:func   creat   check   ie 6   create   方法   setting   uniq   绑定   

knockout 提供生成了uniqueName的方法,但没有提供生成Id的方法。

感谢stackoverflow提供的思路与方法。

下面是uniqueName的实现方法。

ko.bindingHandlers[‘uniqueName‘] = {
    ‘init‘: function (element, valueAccessor) {
        if (valueAccessor()) {
            element.name = "ko_unique_" + (++ko.bindingHandlers[‘uniqueName‘].currentIndex);

            // Workaround IE 6 issue - http://www.matts411.com/post/setting_the_name_attribute_in_ie_dom/
            if (ko.utils.isIe6)
                element.mergeAttributes(document.createElement("<input name=‘" + element.name + "‘/>"), false);
        }
    }
};
ko.bindingHandlers[‘uniqueName‘].currentIndex = 0;

绑定

<input type="checkbox"  data-bind="uniqueName:true" />

对于Id

ko.bindingHandlers[‘uniqueId‘] = {
                ‘init‘: function (element, valueAccessor) {
                    if (valueAccessor()) {
                        element.id = "ko_unique_" + (++ko.bindingHandlers[‘uniqueId‘].currentIndex);
                    }
                }
            };
<input type="checkbox"  data-bind="uniqueId:true" />

对于label的for属性

ko.bindingHandlers[‘foruniqueId‘] = {
                ‘init‘: function (element, valueAccessor) {
                    if (valueAccessor()) {
                        element.setAttribute(‘for‘, "ko_unique_" + (++ko.bindingHandlers[‘foruniqueId‘].currentIndex));
                    }
                }
            };

html元素

<label data-bind="foruniqueId:true" ></label>

 

knockout为绑定元素生成id

标签:func   creat   check   ie 6   create   方法   setting   uniq   绑定   

原文地址:https://www.cnblogs.com/lucika/p/9346529.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!