【发布时间】:2017-04-16 02:27:57
【问题描述】:
我有一个列表,显示照片拇指单击拇指时,会打开一个引导模式,将单击的拇指显示为全屏图像。 这是通过更新 observable() 来完成的。
问题是.. UI 没有更新,导致没有数据显示,没有图像或文本。模态弹出功能正常工作。
但是.. console.logging observable 时。它按应有的方式显示对象,并进行更新。
那么为什么当我在控制台记录它而不是在 UI 中时这看起来很好?
点击事件(在 foreach 内)
<a data-toggle="modal" data-target="#full-modal-photopage" data-bind="click: $parent.setSelectedPhoto">
<img data-bind="attr:{src: BlobUrlPhotoThumb}" style="max-width: 100%; max-height: 100%;" />
</a>
显示所选照片的模式(引导模式)
<div class="modal fade" id="full-modal-photopage" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="z-index: 999999999999">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 id="myModalLabel" data-bind="text: selectedPhoto.PhotoText "></h4>
</div>
<div class="modal-body">
<img data-bind="attr: { src: selectedPhoto.BlobUrlPhoto }" id="full-modal-img" alt="" />
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
Observable init & setSelectedPhoto 脚本
self.selectedPhoto = ko.observable();
self.setSelectedPhoto = function(selPhoto) {
self.selectedPhoto(selPhoto);
console.log(self.selectedPhoto());
}
【问题讨论】:
-
让
self.selectedPhotoobservables 中的所有属性怎么样?因为,似乎主对象被引用了,但实际上 bound 属性没有更新,因为它们不是可观察的......
标签: javascript twitter-bootstrap knockout.js