다음 코드와 비슷하지만 자본을 cityName Barnsley으로 다르게 렌더링하고 다른 이름으로 도시를 다르게 렌더링하려고합니다. 바인딩의 경우 을 수행하는 올바른 방법은 무엇입니까? cityName을 관측 가능으로 두어야합니까?녹아웃 Js는 Json 값을 기반으로하는 데이터 바인딩 인 경우 다르게 렌더링합니다.
<ul data-bind="foreach: planets">
<li>
Planet: <b data-bind="text: name"> </b>
<div data-bind="if: capital">
Capital: <b data-bind="text: capital.cityName"> </b>
</div>
</li>
</ul>
<script>
ko.applyBindings({
planets: [
{ name: 'Mercury', capital: null },
{ name: 'Earth', capital: { cityName: 'Barnsley' } }
]
});
</script>
확인은 여전히 성공은 내 JSON이 없습니다 :
var Images = {
"ImageInfo": [
{
"thumbs": [
{
"IMAGE": "url(http://...d38508d4f183.jpg)",
"type": "img"
},
{
"IMAGE": "url(http://...d38508d4f183.jpg)",
"type": "video"
}
]
},
{
"thumbs": [
{
"IMAGE": "url(http://...d38508d4f183.jpg)",
"type": "img"
},
{
"IMAGE": "url(http://...d38508d4f183.jpg)",
"type": "video"
}
]
}
]
};
내가 달성하고자하는 HTML은 다음과 같습니다 :
<div id="Images">
<div data-bind="foreach: ViewModelB">
<div data-bind="foreach: thumbs">
<div data-bind="if: type == 'img'">
<a style="width: 50px; height: 50px; float: left; display: block; background-size: cover; margin-left: 15px; cursor: pointer;" data-bind="style: { backgroundImage: IMAGE_PATH }"></a>
</div>
<div data-bind="if: type == 'video'">
<p style="width: 50px; height: 50px; float: left; display: block; background-size: cover; margin-left: 15px; cursor: pointer;" data-bind="style: { backgroundImage: IMAGE_PATH }"></p>
</div>
</div>
</div>
</div>
<script>
var ViewModelB = ko.mapping.fromJS(Images);
ko.applyBindings(ViewModelB, document.getElementById("Images"));
</script>
어떤 도움이 많이 주시면 감사합니다! 당신은 거의가
코드가 작동합니다. http://jsfiddle.net/Rpgnc/ –
위의 코드는 Knockoutjs 문서의 사본 붙여 넣기입니다. 제 질문은 cityName Barnsley와 자본을 다르게 렌더링하고 cityName : asdad를 사용하여 자본을 다르게 렌더링하는 것입니다. 데이터 바인딩을 작성하는 방법이 있나요? "cityName == Barnsley"가 다음을 렌더링하는 경우 ... –