2
我剛開始玩applyBindingsToNode,這對於我想要的一切工作都很好,但有一點需要注意......函數似乎不起作用。從使用applyBindingsToNode的元素綁定調用viewmodel函數失敗
ko.applyBindingsToNode(newNode.get()[0], {
//template: { name: 'relationshipNode', data: ent },
click: ent.select, //does not work
clickBubble: false,
event: {
contextmenu: ent.rightClick, //does not work
mouseover: ent.toggleHover, //does not work
mouseout: ent.toggleHover //does not work
},
attr: {
'data-name': ent.name, //works
'data-type': ent.type //works
},
css: {
selected: ent.selected, //works
hover: ent.hovered //works
},
text: ent.name //works
})
下面是一個例子,懸停功能
self.toggleHover = function (entity, event) {
entity.hovered(!entity.hovered());
}
,因爲 「實體」 是不確定的,則拋出一個錯誤。
所有這些功能正常工作在運行時與所述數據綁定屬性創建的一個元素上,像這樣:
<div data-bind="click: select, clickBubble: false, event: { contextmenu: rightClick, mouseover: toggleHover, mouseout: toggleHover }, attr: {'data-name': name, 'data-type': type }, css: { selected: selected, hover: hovered }"></div>
奇怪。剛剛通過「ent」作爲第三個參數,果然,現在可以工作。謝謝。 –