1

我试图让 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。

4

1 回答 1

2

首先,你不应该明确地绑定你的视图模型;让杜兰达尔为你做这件事。接下来,您可以通过将绑定处理程序放在 main.js 或 shell.js 文件的 activate 方法中,在一开始就注册任何敲除绑定处理程序。这样,您可以保证绑定处理程序在绑定时可用于所有视图模型/视图组合。

于 2013-03-16T00:16:03.380 回答