我在for循环中生成以下内容(暂时忽略jade模板语法):
ul.nav.nav-tabs(data-bind="foreach: channels", id="galery_tabs")
li
a(data-toggle='tab', data-bind="attr: {href: '#tab_section_' + __kb.object.cid},html: name() + ' <i class=\"icon-remove close\" data-binding=\"click: removeChannel\"></i>'")
当我调用.applyBindings时,它将使用内部有绑定的Icon正确呈现我的A元素。
问题:如何进行二次传递应用以确保动态生成的绑定现在也应用于所有Icon元素?
答案 0 :(得分:1)
您不需要为方案使用html
绑定。
您可以将<i>
放在<a>
内,并且可以使用KO无容器语法在图标前添加name
属性:
ul.nav.nav-tabs(data-bind="foreach: channels", id="galery_tabs")
li
a(data-toggle='tab', data-bind="attr: {href: '#tab_section_' + __kb.object.cid}")
// ko text: name
// /ko
i.icon-remove.close(data-binding="click: removeChannel")
生成的HTML将如下所示:
<ul data-bind="foreach: channels" id="galery_tabs" class="nav nav-tabs">
<li><a data-toggle="tab" data-bind="attr: {href: '#tab_section_' + __kb.object.cid}">
<!-- ko text: name -->
<!-- /ko--><i data-binding="click: removeChannel" class="icon-remove close"></i></a></li>
</ul>