2016-02-25 60 views
0

更新我有這樣的代碼:knockoutjs圖片src沒有得到來自ko.observable

<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; 
      } 

而且該代碼執行後的視圖模型:

enter image description here

但是圖片沒有在頁面上更新。

任何想法我還需要做什麼? 謝謝,Laziale

回答

1

做這樣的

var itemToEdit = ko.utils.arrayFirst(self.ProductEffectImagesToMatch(), function (item) { 
      return item; 
     }); 

     if (itemToEdit) { 
      itemToEdit.ImageSrc(self.selectedPose().ImageUrl); 
      itemToEdit.PoseId(self.selectedPose().Id); 
     } 

你必須樹立新的價值觀這樣一來,如果不是你要覆蓋觀察到的,將不再工作。

+0

你是一個拯救生命的人,謝謝:) – Laziale