LINUX.ORG.RU

Попробуй так

require(["dojo/_base/json"], function(dojo){
  console.log(dojo.toJson({}));
});
xtsidx
()

В Dojo всё работает немного не так, как Вы ожидаете. Вы подключили только «ядро» этой библиотеки, а для использования всех остальных возможностей нужно вызывать require(), как уже написал господин xtsidx.

Если вкратце, то эта функция выполняет ленивую подгрузку необходимых модулей, без этого ничего работать не будет. Хотите использовать ref.toJson? Нужно писать так, например:

require(["dojox/json/ref", "dojo/domReady!"], function(ref){
    var jsonValue = null;
    // Где-то ниже
    jsonValue = ref.toJson(dataFromUserForm);
    // ...
});

Я рекомендую следующий подход к написанию приложений на Dojo:

  • Подключаете файл, в котором происходит инициализация объекта dojoConfig, например, так:
    (function(W){ // W = window, глобальный объект, но ничего страшного
        "use strict";
        W.dojoConfig = {
            async: true,
            debug: false, // Позволяет скрыть отладочную информацию
            parseOnLoad: true,
            locale: 
        };
    }(this));
    
    Подробнее можно почитать тут.
  • Подключаете саму библиотеку, а так же таблицы стилей.
  • Подключаете модуль-загрузчик, который выполняет базовую инициализацию приложения, например, удаляет со страницы индикатор загрузки, подключает необходимые библиотеки и запускает приложение (последний аргумент функции require рекомендую ставить dojo/domReady! (именно так, с восклицательным знаком), чтобы запуск происходил после полной загрузки дерева DOM.

В общем, если вкратце, любой модуль используется только после загрузки с помощью require (иногда - define, если идет определение собственного модуля).

dunmaksim
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.