2014-01-24 1 views
1

Поскольку я пытаюсь загрузить модули с созданием сетки/сетки, мой скрипт переходит в это странное место, где ошибки обрабатываются кодом, который выглядит как gobbledy gook. Если я создаю сетку без атрибута модулей, строки отображаются просто отлично. Я кодирую с 6.1 в рациональном разработчике приложений 9.1, используя доджо 1.9, который (поставляется с RAD). мой додзё включает указаны так:Модули gridx не загружаются в моей среде рационального/рабочего света

function dojoInit() { 
    require([ "dojo/ready", "dojo/parser", "dojox/mobile", "dojo/dom", 
     "dijit/registry", "dojox/mobile/ScrollableView", 
    "dojox/mobile/Heading", "dojox/mobile/ScrollablePane", 
    "dojox/mobile/Pane", "dojox/mobile/TextArea", "dojox/mobile/ContentPane", 
    "dojo/Deferred", "dojo/store/Memory", 
    "gridx/Grid", "gridx/core/model/cache/Sync", "dojox/mobile/Container", 
    "gridx/modules/SingleSort"], 
    function(ready) { ... 

Вот мои таблицы стилей ссылки:

<link rel="stylesheet" href="css/dojo.css" /> 
<link rel="stylesheet" href="css/claro.css" /> 
<link rel="stylesheet" href="css/document.css" /> 
<link rel="stylesheet" href="css/Gridx.css" /> 
<link rel="stylesheet" href="css/Gridx_rtl.css" /> 

я переехал CSS файлы из gridx/ресурсов/Claro/Gridx.css и в других местах в додзё библиотеку инструментальных средств к известному относительному местоположению, временно, чтобы исключить возможность невозможности разрешения файлов css. и я задаю только класс «claro» в div, где размещена эта сетка. нет никакой разницы в поведении сетки в любом случае.

Моя сетка создается следующим образом:

toStore=new dojo.store.Memory({ idProperty: 'PICYNO', data: resultSet }); 
toColumns=[ 
    { id: 'PICYNO', field: 'PICYNO', name: 'Cycle'  , width: '80px' , editable: true }, 
    { id: 'PIDSC1', field: 'PIDSC1', name: 'Description' , width: '300px', editable: true }, 
    { id: 'PICYCS', field: 'PICYCS', name: 'Status'  , width: '60px' , editable: true }, 
    { id: 'PPICSDJ',field: 'PPICSDJ', name: 'Date'  , width: '80px' , editable: true }, 
    { id: 'PICYIT', field: 'PICYIT',  name: 'Items'  , width: '60px' , editable: true }, 
    { id: 'PICYLO', field: 'PICYLO', name: 'Locations' , width: '60px' , editable: true } 
]; 
var cacheClass = "gridx/core/model/cache/Sync"; 
var tsGrid = new gridx.Grid({ 
    id: 'idHeaderGrid', 
    cacheClass: cacheClass, 
    store: toStore, 
// modules:[modules.SingleSort, modules.SelectRow], 
// modules:[gridx.modules.SingleSort], 
// modules:[gridx/modules/SingleSort], 
// modules: [ SingleSort ], 
// modules: [ Sort ], 
    structure: toColumns 
}); 
tsGrid.placeAt('idGridContentPane'); 
tsGrid.startup(); 

если я закомментировать все строки, которые specifiy «модули:» как вы видите, то отображается сетка (но это некрасиво, как будто таблицы стилей weren» t применяется вообще.)

Если я попробую изменить вариант стандартного модуля сортировки, эта функция будет танком. Я знаю, это, вероятно, потому, что я не правильно определяю свою среду, но я не вижу, как это сделать.

Любые известные проблемы с любыми версиями, которые я использую? любое предложение приветствуется.

--------- Обновлено ------------

я прогрессировала до такой степени, что я могу отобразить сетку, но форматирование все еще выключен.

Основываясь на результатах экспериментирования с проектом без работы, когда я смог материализовать сетку с модулями, а также осознал, что с любым типом проекта (веб-или рабочей подсветкой) я смог разрешить додзё и Gridx объекты, даже если ресурсы javascript настроены по-разному, я решил попробовать локальную инструкцию require, чтобы указать модули dojo в непосредственном контексте, и это сработало. Первоначальная конфигурация dojo в рабочем свете была обновлена ​​в объекте main.js, который автоматически генерируется приложением для подсветки. это выглядело так:

function wlCommonInit() { 
    require([ "layers/core-web-layer", "layers/mobile-ui-layer" ], dojoInit); 
} 
function dojoInit() { 
    require([ "dojo/ready", "dojo/parser", "dojox/mobile", "dojo/dom", 
      "dijit/registry", "dojox/mobile/ScrollableView", 
      "dojox/mobile/Heading", "dojox/mobile/ScrollablePane", 
      "dojox/mobile/Pane", "dojox/mobile/TextArea", "dojox/mobile/ContentPane", 
      "dojo/Deferred", "dojo/store/Memory", "dojox/mobile/Container", 
      "gridx/modules/SingleSort", "gridx/modules/ColumnResizer", "gridx/modules/RowHeader" 
      ], 
      function(ready) { 
       ready(function() { 
       ccInit(); 
     }); 
    }); 
} 

я удалил объявления модуля из main.js и добавил их в приложении ccInit.js, где создается сетка, например:

function populateGrid() { 
     require([ 
      'dojo/store/Memory', 
      'gridx/Grid', 
      'gridx/core/model/cache/Sync', 
      'gridx/modules/SingleSort',  
      'gridx/modules/ColumnResizer', 
      'gridx/modules/RowHeader' 
      ], function(Store, Grid, Cache, Sort, ColumnResizer, RowHeader) { 
. . . 
     var tsGrid = new gridx.Grid({ 
      id: 'idHeaderGrid', 
      cacheClass: Cache, 
      store: toStore, 
      modules: [ Sort, ColumnResizer, RowHeader ], 
      structure: toColumns, 
      selectRowTriggerOnCell: true 
     }); 
... 

Сетка созданный успешно, когда он создается в контексте немедленного требования, как показано. Многие вызовы dojo и даже сетка без модулей будут работать, если я использую немедленный подход.

Силы все еще испорчены. Заголовки столбцов пусты, и таблица не выглядит как сетка в стиле кларо. Я уверен, что я правильно настроил css в заголовке html (используя мой рабочий веб-проект в качестве модели). Есть ли какая-либо инициализация фонаря или наложение «скинов», которое это испортило?

Благодарим за любые комментарии.

--- обходное решение относится ко всем классам, локально.

Я решил проблему со стилями, создав gridx.css в общей папке \ css, а затем отредактировал ее, заменив каждый @import копией/вставкой импортированного источника css. Таким образом, gridx.css - это слияние всего исходного кода со всеми импортируемыми. Я указываю на то, что css \ gridx в моей ссылке заголовка, и я получаю разумные результаты.

Итак, я должен был явно требовать классы gridx в пользовательской функции, а не в инструкции dojo require в main.js. И мне пришлось объединить все стили gridx и ссылаться на них локально. Проблема, когда gridx.css и другие таблицы стилей не разрешаются с помощью относительного пути, включает в себя то, что точка для инструментария dojo выглядит как ошибка. Эти таблицы стилей, кажется, должны быть загружены в время выполнения сгенерированного сервером, о чем свидетельствуют сообщения консоли, которые выглядят так:

Не удалось загрузить ресурс: сервер ответил со статусом 404 (не найден) http://myWLdevServer.mycomputer.local:10080/JustGridx/apps/services/preview/JustGridx/common/0/default/dojo/gridx/resources/claro/Gridx.css

Если разработчик должен сделать какую-то конфигурацию сервера, чтобы указать на эти файлы CSS, я не вижу его.

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

+0

Возможно ли, что вы можете поделиться проектом Worklight или создать тестовый пример с помощью gridx, показывающего проблему, и поделиться этим? –

+0

Это было хорошее предложение, потому что, когда я тестировал это в новом веб-проекте, код действительно работает. я вижу, что способ размещения/ссылки инструментария dojo различен между прожектором веб-проектов в RAD. я разберусь с этим углом и обновляю этот поток. Благодарю. – user3208130

+0

Затем я возвращаюсь к своему первоначальному предложению, которое должно было реализовать gridx в небольшом проекте тестового примера. Под этим я имел в виду фактически новый проект Worklight ..., который демонстрирует проблему, а не ваш полномасштабный проект, который имеет ее. –

ответ

0

От комментариев по user3208130:

Извините за не следуя за все это время. я, наконец, работал вокруг проблемы, не импортируя ничего. Я скопировал главный файл gridx.css из gridx \ resources в мой проект, а затем для каждого из импорта, указанного в этом файле, я копировал/вставлял источник из в различные местоположения в коллекции gridx, а также все Файлы coco css, так как gridx использует только этот шрифт. я должен отключить переключение темы в зависимости от устройства, так как ядро ​​выглядит ужасно на windows8 и андроиде в противном случае.

Я знаю, что это не имеет никакого смысла, но я попробовал все изменения относительного и явного пути, который я мог себе представить, для импорта отчетности в обоих заголовке HTML и в основных CSS-файлов и ничего больше работали. я подозревал, что файлы css не копируются автоматически, когда созданы среды устройств, но я не мог доказать это.

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

  • Нет связанных вопросов^_^