我有这样的代码:
<tr data-bind="foreach: ProductEffectImagesToMatch()">
<td>
<span>
<img data-bind="attr: { src: PoseId() ? ImageSrc() : '../images/style2/pose-select-placeholder.png' }, click: $root.PasteSpring"
width="120" />
</span>
</td>
</tr>
我在代码中设置了ImageSrc,但我不确定是否需要另外调用一些东西来应用绑定,因为尽管设置了该值,但我可以看到console.log中的图像url没有得到更新。
这是视图模型:
function EffectSelectionRootModel(imagesrc, poseid) {
var self = this;
self.ImageSrc = ko.observable();;
self.PoseId = ko.observable();
if (imagesrc) {
self.ImageSrc(imagesrc);
}
if (poseid) {
self.PoseId(poseid);
}
}
这些值是这样设置的:
var itemToEdit = ko.utils.arrayFirst(self.ProductEffectImagesToMatch(), function (item) {
return item;
});
if (itemToEdit) {
itemToEdit.ImageSrc = self.selectedPose().ImageUrl;
itemToEdit.PoseId = self.selectedPose().Id;
}
以及执行该代码后的视图模型:
但页面上的图像不会更新。
知道我还需要做什么吗?
1条答案
按热度按时间zfciruhq1#
像这样做
你必须以这种方式设置新的值,否则你将覆盖可观察的值,它将不再工作。