[英]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.