2016-04-02 4 views
1

Я пытаюсь ссылаться на тестовый JQuery-плагин из модуля requireJS, но, похоже, он почему-то не работает.Использование RequireJs с пользовательским JS-плагином

Я иду вот так: Вот мой пользовательский плагин:

test.js

$.fn.testfunction = function(){ 
    alert(); 
}; 

И где я ссылаться на него из

effects.js

define(['jquery', 'step1', 'global', 'test'], function($, step1, global, test){  
    $('body').test();  
}); 

И, наконец, мой main.js где effects.js загружается

main.js

requirejs.config({ 
    baseUrl: "/", 
    urlArgs: "" + Math.floor((Math.random() * 100) + 1), 
    paths: 
    { 

      jquery: '//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min', 
      topJs: '/holoweb/static/js/v3_landing_top', 
      bottom: '/holoweb/static/js/v3_landing_bottom', 
      global: '/v2/js/variables/global', 
      registeringUser: '/v2/js/registeringUser', 
      effects: '/v2/js/effects/effects', 
      step1: '/v2/js/variables/step1', 
      test: '/v2/js/effects/test', 
    } 
}); 

require(['jquery']); 
require(['bottom']); 
require(['topJs']); 

require(['effects']); 


require(['registeringUser'], function(Registration){ 
    var NewUser = Registration.CreateNewUser; 
    NewUser.startStep(1); 
}); 

Когда я иду на это смотреть, я получаю сообщение об ошибке от инструментов разработчика Chrome показа: http://i.imgur.com/IdSZPgh.png

и я понятия не имею, почему.

Извините за любые плохие практики, им совсем новые требования, спасибо.

ответ

0

test.js имеет jquery как зависимость. Заменить на:

define(['jquery'], function($){ 
    $.fn.testfunction = function(){ 
     alert(); 
    }; 
} 

Также можно определить testfunction функцию, но назвать test функцию.

Заменить $('body').test(); на $('body').testfunction();

И вам не нужно использовать несколько require функции. Должна быть только одна функция, которая будет точкой входа вашего приложения.

Смежные вопросы