2014-10-11 2 views
0

Я использую RequireJS в своем проекте для загрузки зависимостей JS.RequireJS правильно загружает CodeMirror, но UIKit говорит, что он не определен

Это мой конфигурационный файл:

require.config({ 
    'baseUrl' : '/js', 
    'paths' : { 
     'angular' : 'dependencies/angular', 
     'cm' : 'dependencies/codemirror', 
     'marked' : 'dependencies/marked', 
     'jquery' : 'dependencies/jquery', 
     'sails' : 'dependencies/sails.io', 
     'uikit' : 'dependencies/uikit/js/uikit' 
    }, 
    'config' : { 
     'uikit' : { 
      'base' : 'dependencies/uikit/js' 
     } 
    }, 
    'shim' : { 
     'angular' : { 
      exports : 'angular' 
     }, 
     'cm/lib/codemirror' : { 
      exports : 'codemirror' 
     }, 
     'jquery' : { 
      exports : 'jquery' 
     }, 
     'sails.io' : { 
      deps : ['socket.io'], 
      exports : 'io' 
     }, 
     'uikit' : { 
      deps : ['jquery', 'cm/lib/codemirror'] 
     } 
    } 
}); 

define([ 
    'angular', 
    'uikit!htmleditor', 
    'cm/lib/codemirror', 
    'cm/addon/mode/overlay', 
    'cm/mode/markdown/markdown', 
    'cm/mode/xml/xml', 
    'cm/mode/gfm/gfm', 
    'marked' 
], function(angular, uikit, CodeMirror) { 

    var htmleditor = uikit.htmleditor(document.getElementById("formNewArticleTextarea"), { 
     markdown : true, 
     mode : 'tab' 
    }) 
}); 

Проблема заключается в том, что каждый раз, когда я перезагрузить страницу аддон UIKit HTMLEditor возвращает мне эту ошибку:

Uncaught ReferenceError: CodeMirror is not defined 

ответ

0

Я была такая же проблема с CodeMirror и Справился.

Попробуйте ввести CodeMirror намеренно в глобальную область (окно) в верхней части функции init. См. «Добавить эту строку» ниже:

define([ 
    'angular', 
    'uikit!htmleditor', 
    'cm/lib/codemirror', 
    'cm/addon/mode/overlay', 
    'cm/mode/markdown/markdown', 
    'cm/mode/xml/xml', 
    'cm/mode/gfm/gfm', 
    'marked' 
], function(angular, uikit, CodeMirror) { 
    window.CodeMirror = CodeMirror; // <-- Add this line 
    var htmleditor = uikit.htmleditor(document.getElementById("formNewArticleTextarea"), { 
     markdown : true, 
     mode : 'tab' 
    }) 
}); 
Смежные вопросы