【发布时间】:2013-04-25 18:45:08
【问题描述】:
我有两个 observables 1.数据和 2.Image(进行Ajax调用以获取图像。为此,我正在传递数据ID)。 如果找到图像,那么我需要显示图像和数据,如下所示。 例如:
<div class="MainDiv">
<div class="ImageDiv"><img id="img" src:"/...image/" /></div>
<div class="dataDiv" data-bind="text: data/>
</div>
假设如果找不到图像,那么我需要像隐藏图像 div 一样
<div class="MainDiv">
/* Hide this when no image <div class="ImageDiv"><img src="" /> */
<div class="dataDiv" data-bind="text: data/>
</div>
我使用了 ko attr,如下图所示: Var ImageFound 包含布尔值。如果为 true 则显示图像 div 和数据 div 否则仅显示数据 div。
<div data-bind="attr: { class: ImageFound ? 'ImageDiv' : 'DataDiv' }">.
你能建议怎么做吗?
这里是viewModel代码:
// This function internally makes Ajax call for every data to get the corresponding image
function LoadImages(result) {
$.each(result, function (id, data) {
if (data.ImageUrl != null) {
return http.get(Url +'/?imageId=' + data.ImageUrl)
.success(function (imageResponse) {
if (imageResponse == null || imageResponse == "") {
newItem.ImageFound= false;
}else {
var newItem = vm.Data()[id];
newItem.Image = "" + imageResponse;
newItem.ImageFound= true;
vm.data.replace(vm.data()[id],newItem)
vm.data(result);
}
})
.fail(function (exception) { });
【问题讨论】:
标签: knockout.js