Требовать js разрушает навигацию по коду

require.js устанавливает наилучший способ определения объектов внутри модулей с помощью define ([requiremens], object) .

Таким образом, каждая страница или другой файл js будет делать require () вызывать и получать модули в качестве параметров.

Это работает нормально, каждая функция / модуль имеет собственное пространство имен.

Проблема в том, что у меня есть:

// AJAX/Requests.js

define(['UI/Message'],function(Message){
var Requests={
    checkResponse:function(response){
        //1==ok
        //0==error
        //2==good message
        //3==good message, but still stop
        if(response.status==1){
            return true;
        }
        else if(response.status==2){
            Message.good(response.message);
            return true;
        }
        else if(response.status==3){
            Message.good(response.message);
            return false;
        }
        else{
            Message.bad(response.message);
            return false;
        }
    }
};
return Requests;
});

Теперь пользовательский интерфейс / сообщение определяется таким же образом и возвращает объект.

Но когда я редактирую файл с запросами, я не могу перемещаться по коду, поэтому, если я хочу отредактировать объект сообщения, единственный способ - открыть файл самому и найти нужную мне функцию, а не иметь IDE прыгает туда для меня.

Есть ли какой-нибудь обходной путь специально для pycharm или для require.js, чтобы решить эту проблему? Когда у вас много кода, навигация по нему становится беспорядочной, поэтому я в первую очередь использую IDE!

И что еще хуже: редактор никогда не знает, какие функции имеют объекты!

Я вижу одно возможное решение - не использовать закрытые пространства имен и объявить глобальную переменную перед вызовом define () , но в этом случае все объекты должны вызываться как UI_Message, AJAX_Requests. Чтобы быть уверенным, что у меня нет сообщения в двух разных местах ....

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

19
задан cdeszaq 18 December 2013 в 18:53
поделиться