1

このフィドルhttp://jsfiddle.net/EZgNsに基づいて、ダイナツリー コントロールを Hottowel ビューモデルで動作させようとしています。

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 に答える