IBM Worklight 6.1 - Невозможно иметь работающий переход представления Dojo

Я новичок в работе с рабочей средой и недавно начал работать над ней.

Я использую dojo версии 1.9 (поставляется IBM), worklight 6.1, ОС Windows 7, eclipse juno sr2 64bit, IE 10 (для RPE), Google Chrome последней версии (браузер по умолчанию).

Я пробовал много виджетов в мобильном приложении dojo, и все они работают нормально, я также задавал другие вопросы, такие как «Приложение Worklight 6.1 для Android отображает все представления без виджетов», и выполнил все шаги, указанные в решении, и успешно создал и просмотрел страницы. как на MBS, так и на эмуляторе Android. Единственная проблема, когда я работаю с представлениями. Я добавляю tabBar из dojo и TabBarButtons для переходов просмотра. Также добавьте несколько просмотров на страницы и свяжите их с помощью кнопок. Я также проверяю и вижу, что мой файл main.js обновлен со всеми включенными элементами. Хотя панель инструментов вместе с видом по умолчанию видна, она не переключает вид, когда я нажимаю другие кнопки в tabBar. также при нажатии TabBarButtons всплывает ошибка в консоли Chrome - Uncaught TypeError: undefined не является функцией

Эта ошибка выскакивает при каждом клике.

вот структура моего исходного кода в теге body файла index.html: -

<body style="display: none;">
<div data-dojo-type="dojox.mobile.View" id="view2"
        data-dojo-props="selected:true">
    <div data-dojo-type="dojox.mobile.View" id="view0" data-dojo-props="selected:true" >
            <div data-dojo-type="dojox.mobile.Heading"
        data-dojo-props="label:'Hello world'"></div>

        <button data-dojo-type="dojox.mobile.Button">Hello</button>
        <input data-dojo-type="dojox.mobile.TextBox"><input type="range"
            data-dojo-type="dojox.mobile.Slider"
            data-dojo-props="orientation:'H'">


    </div>
    <div data-dojo-type="dojox.mobile.View" id="view1"
        data-dojo-props="selected:false">
        <div data-dojo-type="dojox.mobile.Heading"
            data-dojo-props="label:'About',moveTo:'view0'">
            </div>
        <div data-dojo-type="dojox.mobile.RoundRect">
        Hello, we are a leading company in innovations
        </div>
    </div>
    <ul data-dojo-type="dojox.mobile.TabBar" fixed="bottom" id="Tab1">
        <li data-dojo-type="dojox.mobile.TabBarButton" data-dojo-props="moveTo:view0,transition:'slide'" id="tabB1">Home</li>
        <li data-dojo-type="dojox.mobile.TabBarButton" data-dojo-props="moveTo:view1,transition:'slide'" id="tabB2">About</li>
    </ul>
    </div>
    <script src="js/initOptions.js"></script>
            <script src="js/main.js"></script>
            <script src="js/messages.js"></script>
    </body>

// Остальное - это код по умолчанию, никаких изменений в версии jquery или чего-либо еще Я также пробовал следующие вещи, и ни одна из них, похоже, не работает: - Скопировал и заменил файлы в папке www из dojoLib/dojo/dojo/nls/core файлы -web-layer.js и mobile-web-layer.js. - Удерживал панель вкладок вне любого представления непосредственно в теге body и связывал с ним представления. -Добавлен атрибут id для элементов tabBar и кнопок вкладок, а также элементов представления. -выключил предоставление отсутствующих ресурсов библиотеки и включил отсутствующие файлы (если они есть), пересобрал проект и снова запустил.


person Mustafa sabir    schedule 07.05.2014    source источник
comment
Почему вы удалили исходный код? Предоставьте ФАКТИЧЕСКИЙ исходный код, который у вас не работает.   -  person Idan Adar    schedule 07.05.2014
comment
Извините, код не отображался должным образом, поэтому пришлось его удалить, это весь код по умолчанию, который вставляется, когда мы перетаскиваем виджеты.   -  person Mustafa sabir    schedule 07.05.2014
comment
Пожалуйста, добавьте его снова, вы просто не правильно отформатировали его. Я починю это.   -  person Idan Adar    schedule 07.05.2014
comment
хорошо конечно .. я добавляю код   -  person Mustafa sabir    schedule 07.05.2014
comment
Я отформатировал и добавил код   -  person Mustafa sabir    schedule 07.05.2014


Ответы (1)


Основная проблема (вызывающая исключение) — отсутствие кавычек вокруг идентификаторов представления атрибутов moveto. Так должно быть:

data-dojo-props="moveTo:'view0',

После исправления ваш образец будет работать.

Но есть еще одна проблема, на этот раз связанная с дизайном: свойство TabBar fixed имеет смысл только при использовании с ScrollableView (это свойство гарантирует, что панель вкладок не прокручивается и сохраняет свое нижнее положение). Таким образом, ваш внешний вид должен быть ScrollableView. Также обратите внимание, что вложенные представления имеют некоторые ограничения. В частности, используя атрибут «moveto», вы не можете перейти из представления в другое представление, если последнее содержится в другом родительском элементе.

Не стесняйтесь просматривать различные тесты в dojox/mobile/tests и документация

person Patrick Ruzand    schedule 07.05.2014
comment
Да, сейчас работает. Вау, такая маленькая ошибка заставила меня застрять на неделю. Может быть, это ошибка в worklight, я ничего не кодировал, чтобы убедиться, что не делаю ошибок. Эти свойства «moveTo» были установлены с помощью пользовательского интерфейса рабочего освещения в представлении свойств. Также стоит отметить, что для свойства перехода между слайдами были добавлены кавычки (хотя это тоже было установлено с помощью пользовательского интерфейса Worklight). И да, это свойство «фиксированное дно» также добавляется по умолчанию, когда мы создаем tabBar. Но спасибо, приятель, и я обязательно просмотрю документацию. - person Mustafa sabir; 08.05.2014