2012-05-04 10 views
6

Estoy utilizando knockout como marco principal en mi aplicación y tiene que admitir tabletas y dispositivos móviles. Como el framework se basa en los controladores vinculantes, me pregunto cómo se puede lograr el enlace personalizado a las acciones (como deslizar y otros dispositivos específicos), o tal vez hay algo como esto hecho?Unión de acción deslizante en knockoutjs

+0

Usted es capaz de añadir sus propias fijaciones: http://knockoutjs.com/ documentation/custom-bindings.html – Niko

+0

sí, lo sé. pero lo que estoy buscando es una buena construcción en deslizamiento, toque y otros enlaces de eventos táctiles (porque ahora estoy inicializando en el documento iniciar con selectores de jquery y vincular esas acciones manualmente) –

Respuesta

0

No hay enlaces incorporados para marcos específicos ya que knockout.js no tiene dependencias en ningún otro marco. Debe ser una tarea trivial convertir el código del selector jQuery en controladores de enlace que hacen referencia al enlace que @niko proporciona más arriba.

0

No sé si todavía ayuda, pero aquí hay un puntero.

  1. Utilice una biblioteca como Hammer.js para obtener acciones multitáctiles.
  2. Escriba un controlador de enlace personalizado y llame al enlace de evento predeterminado del knockout. algo como esto para un golpe. (El autor del violín utiliza tap.js)

http://jsfiddle.net/snaptopixel/spByj/

ahora todo lo que haces en tu html es

<button data-bind="tap:doSomething">Click Me</button>​ 

donde doSomething es una función.

1
  1. Crear una bindingHandler. Aquí tienes un ejemplo de un proyecto real

    ko.bindingHandlers.swipeSections = { 
    init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) { 
        var elem = $(element); 
        var params = valueAccessor().split('##'); 
    
        elem.unbind('swipe'); 
    
        elem.swipe({ 
         swipeLeft: function (event, direction, distance, duration, fingerCount) { 
          //process 
         }, 
         swipeRight: function (event, direction, distance, duration, fingerCount) { 
          //process 
         } 
        }); 
    } 
    

    };

  2. Usando una biblioteca de paso: https://github.com/mattbryson/TouchSwipe-Jquery-Plugin

    script type="text/javascript" src="scripts/jquery.touchSwipe.js" 
    
  3. Definir el elemento de unión

    div id="myid" class="section" data-bind="swipeSections: 'leftPanel##rightPanel'" 
    
Cuestiones relacionadas