【发布时间】:2016-10-21 09:57:38
【问题描述】:
我正在使用 Knockout js 自定义绑定在 div 中绑定一些新的 div 元素,使用类并且我正在从数据库中获取数据,它仅适用于单个数据,如果数据不止一个,它会再次绑定在同一个 div 中,就像我下面的代码一样,
//for single data it working
<div data-bind="foreach:items">
<ul data-role="listview">
<li>
<div databind="BindingImage({img:imageurl})" class="Image">
<div id="img1"><img src=1.png /></div>
</div>
</li>
</ul>
</div>
//for multiple data it not working
<div data-bind="foreach:items">
<ul data-role="listview">
<li>
<div databind="BindingImage({img:imageurl})"class="Image">
<div class="imageWrapper" id="img1"><img src=1.png /></div>
<div clas="imageWrapper" id="img2"><img src=2.png /></div>
</div>
for multiple data its create databind="BindingImage div, but inside the div it does not bind anything, i need to bind image2 in this div but its getting bind on first div itself,i need to bind first image inside the first BindingImage div and next one in another BindingImage div where i am doing wrong.
<div databind="BindingImage({img:imageurl})"class="Image"></div>
</li>
</ul>
</div>
//custom binding//
ko.bindingHandlers.BindingImage = {
update: function(element, valueAccessor) {
id+=1
var className = element.className;
imagewrapper= document.createElement('div');
imagewrapper.className = "imageWrapper";
imagewrapper.id = "img1"+id
document.querySelector("." +className).appendChild(imagewrapper)
}
};
【问题讨论】:
-
你的Html很乱,很多结尾标签都不见了。
-
databind="BindingImage({img:imageurl})"可以,但绝对不是淘汰绑定语法。与你所说的相反,我很确定这段代码根本不起作用。
标签: javascript jquery knockout.js knockout-2.0