簡體   English   中英

為什么數據綁定在字符串中不起作用?

[英]Why data-bind doesn't work inside a string?

我正在嘗試向 Google 地圖中的工具提示(信息窗口)添加一個按鈕。 我在一個字符串中生成這個按鈕,我只是將這個字符串添加到工具提示的內容中,以便它在工具提示中生成按鈕。 問題是數據綁定似乎不是這樣工作的。

這是情況的圖像: https : //imgur.com/gpyl0Mr

function MapViewModel() {
  var self = this;
  self.removeTurbineColor = ko.observable(false);

  function addToolTip(currentTurbine, turbineIcon){
    var turbineToolTip = "name";

    turbineToolTip += "<button id='remove-emergency-turbine' data-bind='click: 
    removeTurbineColor'> remove </button>";


   self.removeTurbineColor.subscribe( function() {
     console.log("turbine changed");
   });

  var infoWindowTurbine = new google.maps.InfoWindow({content: turbineToolTip});

  if(turbineIcon){
    google.maps.event.addListener(turbineIcon, "click", function(){
      infoWindowTurbine.setPosition(turbineIcon.getPosition());
      infoWindowTurbine.open(self.map, turbineIcon);
     });
   }

 }
}

當我點擊按鈕時,我希望控制台中的輸出是“渦輪機改變”,但什么也沒有出現。

當您第一次調用ko.applyBindings時,會設置 Knockout 綁定。 它不會對在初始綁定之后插入的元素應用綁定。

您可以附加一個按鈕元素並手動附加一個單擊事件處理程序,而不是插入 HTML。

或者,可能更好的是,您可以對按鈕 HTML 進行硬編碼,以便在ko.applyBindings應用其綁定,​​並使用另一個可觀察對象切換其可見性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM