2013-08-05 5 views
0

를 사용하여 이벤트 핸들러에 프록시 기능을 적용하지만, 정상적인 기능 괜찮는 프록시 기능이 작동하지 않습니다 해머 라이브러리

나는 그것이 problably 범위의 문제이다

을 작동하도록 할 수 있지만, 내가 어떻게 할 수있는 일 이 문맥에서 "적용"또는 "호출"을 사용합니까?

delegateEvents: function(){ 
      for (var key in this.events) { 
      var methodName = this.events[key]; 
      var method  = this.proxy(this[methodName]); 

      var match  = key.match(this.eventSplitter); 
      var eventName = match[1], selector = match[2]; 

      if (selector === '') { 
       this.el.bind(eventName, method); 
      } else { 
       eventName == "click" && (eventName = "tap click"); 
       console.log("selector",selector); 
       console.log("eventName",eventName); 
       var eel = $$(selector, $(this.el)); 
       Hammer(eel).on(eventName, method); 
      } 
      } 
     } 
     }); 

과 사람이

를 알고 있다면

Hammer.Instance.prototype = { 
    /** 
    * bind events to the instance 
    * @param {String}  gesture 
    * @param {Function} handler 
    * @returns {Hammer.Instance} 
    */ 
    on: function onEvent(gesture, handler){ 
     var gestures = gesture.split(' '); 
     for(var t=0; t<gestures.length; t++) { 
      this.element.addEventListener(gestures[t], handler, false); 
     } 
     return this; 
    }, 

프록시 기능

util = { 
     proxy: function(fn, context, args){ 
      var argsArr = slice(arguments, 2); //curried args 
      return function(){ 
       return fn.apply(context, argsArr.concat(slice(arguments))); 
      }; 
     }, 

컨트롤러의 일부

result.proxy = function(func){ return util.proxy(func, this); }; 
so, this.proxy == result.proxy and the context is already set to this 

감사하게 해머의 일부

+0

그래서'this'는'util'이고,'method'를 어떤 컨텍스트에 바인드하고 싶습니까? – Bergi

+0

척추 컨트롤러,하지만 난 프록시가 이미 그것을하고 있다고 생각. Util은 헬퍼 함수가있는 별도의 객체입니다. 명확하게하기 위해 질문을 수정했습니다. – Richard

+0

아 좋아. 이미 효과가있는 것처럼 보입니다. 그렇죠? – Bergi

답변

0

Minified library은 해머 라이브러리 이 작동하지 않는 선택기를 반환했습니다.

음, 즉

그것은 내가 두 개의 서로 다른 기능은 "$"버전에 대한 선택의 한 유형을 사용했다는 사실은 사실이었다 처음 가정이었다, 느릅 나무는 축소 된 개체를 반환하지만 해머 단지를 노드가 필요하므로 "$$"버전이 필요합니다.