2015-02-08 3 views
1

Я пытаюсь использовать waypoints с zepto и RequireJS.RequireJS + Zepto + Waypoints: Невозможно прочитать свойство «apply» of undefined

Моя конфигурация requireJS выглядит следующим образом:

requirejs : { 
options : { 
    baseUrl : '<%= config.app.js %>', 
    paths : { 
     almond : '../node_modules/almond/almond', 
     zepto : '../node_modules/zepto/zepto.min', 
     'progressbar' : '../node_modules/progressbar.js/dist/progressbar', 
     waypoints : '../node_modules/waypoints/lib/zepto.waypoints' 
    }, 
    shim : { 
     zepto : { 
      exports : '$' 
     } 
    }, 
    mainConfigFile: '<%= config.app.js %>/common.js', 
    include : ['common'], 
    name : 'almond', 
    out : 'dist/js/<%= pkg.name %>.js', 
    insertRequire: ['common'], 
    wrap: true 
}, 
dist : { 
    options : { 
     optimize: 'uglify2' 
    } 
}, 
dev : { 
    options : { 
     optimize: 'none' 
    } 
} 
}, 

Кроме того, мой common.js файл следующим образом:

define(['zepto', 'waypoints'], function($) { 

var waypoint = $('#experience').waypoint({ 
    handler: function(direction) {} 
}); 

});

Но когда страница загружена, я получаю следующее сообщение об ошибке:

Uncaught TypeError: Cannot read property 'apply' of undefined

Ошибка, исходит от этой линии на библиотеке waypoints плагина:

return this.$element[method].apply(this.$element, args)

Когда я отлаживаю код, я вижу, что function ZeptoAdapter(element) вызывается дважды, один раз с $('#experience') как элемент, и один раз с window. Второй раз, когда он терпит неудачу, поскольку this.$element не определен. Я делаю что-то неправильно? Каков правильный способ включения zepto-плагина?

Спасибо,

ответ

0

Waypoints ничего не делать, чтобы экспортировать для CommonJS или AMD. Я считаю, что вам нужно Призонная шайба это также:

shim : { 
    zepto : { 
    exports : '$' 
    }, 
    waypoints: { 
    deps: ['zepto'], 
    exports: 'Waypoint' 
    } 
} 
-1

Это решить мою проблему

shim : { 
    jqueryWaypoints:{ 
     deps: ['jquery'], 
     exports: 'jqueryWaypoints' 
    } 
}