1

私は次のコードを持っています:

<div class="icon-upload" data-bind="click: button('upload') "> Upload </div>

ko.bindingHandlers.button = {
    init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext)
    {
        //alert('works');
        console.log(element);
    }
};

しかし、私はbutton is not definedエラーを受け取り続けます。on('click')パラメータを使用してイベントを実行し、初期化するバインディングを決定しようとしています。

たとえば、をクリックするbutton('upload')と、以下を初期化しますbinding

ko.bindingHandlers.image = {
        init: function (element, valueAccessor, allBindingsAccessor, context)
        {
            var value = ko.utils.unwrapObservable(valueAccessor()),
                $element = $(element);
                console.log($element)

            $element.html(value);

            /*$element.pluploadQueue({
                runtime: 'gears, browserplus, html5, flash, html4',
                max_file_size: '10mb',
                max_file_count: 10,
                chunk_size: '1mb',
                unique_names: true,
                multiple_queues: true,
                drop_element: true,
                dragdrop: true,
                filters : [
                    {title : "Image files", extensions : "jpg,gif,png"}
                ]
            });*/
        }
    };
4

1 に答える 1

1

あなたはそれを間違っています。イベント時buttonにトリガーされるカスタムバインディングを作成する必要があります。click

ko.bindingHandlers.button = {
   init: function (element) {
      $(element).click(function() {
          // Your logic
      });
   }

   update: function(element, valueAccessor, allBindingsAccessor) {
      switch(ko.utils.unwrapObservable(valueAccessor())) {
          case 'upload': ...
      }
   }
}

ビューで

<div class="icon-upload" data-bind="button: 'upload'"> Upload </div>
于 2012-12-28T11:44:39.367 に答える