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
감사하게 해머의 일부
그래서'this'는'util'이고,'method'를 어떤 컨텍스트에 바인드하고 싶습니까? – Bergi
척추 컨트롤러,하지만 난 프록시가 이미 그것을하고 있다고 생각. Util은 헬퍼 함수가있는 별도의 객체입니다. 명확하게하기 위해 질문을 수정했습니다. – Richard
아 좋아. 이미 효과가있는 것처럼 보입니다. 그렇죠? – Bergi