ビューで初期化されたサードパーティ コントロールがあります。
<!--<ul data-bind="template: { name: 'itemTmpl', foreach: treeGroups }, groupTree: {}"></ul>/-->
カスタム バインディング ハンドラーを使用する場合:
ko.bindingHandlers.groupTree = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var tm = valueAccessor();
var tmUnwrapped = tm();
$(element).fancytree({
minExpandLevel: 1,
source: tmUnwrapped,
lazyload: function (e, data) {
data.result = datacontext.getGroupChildren('1111');
},
activate: function (event, data) {
//logEvent(event, data);
var node = data.node;
// access node attributes
alert(node.title);
},
})
},
私ができるようにしたいのは、現在「アクティブ化」メソッド(node.title)で「アラート」している値をビューモデルのオブザーバブルに取得することだけです。イベントがツリービューの「内部」でトリガーされ、activate メソッドによって処理されるため、ルート ビューモデル ($root.selectedTitle) に埋め込まれているオブザーバブルに node.title を取得する方法がわかりません。