我试图让dynatree控件在Hottowel视图模型中工作,基于这个小提琴,http://jsfiddle.net/EZgNs
var ViewModel = function() {
var self = this;
self.initialized = ko.observable(false);
self.items = ko.observableArray();
// Use JSFiddle echo to simulate an AJAX service
(function() {
$.ajax({ url:"/echo/json/", data:data, type:"POST",
success:function(data)
{
// Map the returned JSON to the View Model
ko.mapping.fromJS(data, {}, self.items);
self.initialized(true);
}
});
})();
};
ko.bindingHandlers.dynatree = {
update: function(element, valueAccessor, allBindingsAccessor, viewModel) {
setTimeout( function() { $(element).dynatree()}, 0);
}
};
ko.applyBindings(new ViewModel());
无法理解如何编辑vm以合并dynatree ko。
答案 0 :(得分:2)
首先,你不应该明确地绑定你的viewmodel;让Durandal为你做这件事。接下来,您可以通过将绑定处理程序放在main.js或shell.js文件的activate方法中来注册任何淘汰绑定处理程序。这样,您可以保证绑定处理程序在绑定时可用于所有viewmodel / view组合。