Как показать панель приложений WinJS при загрузке фрагмента страницы?

Я хотел бы показать AppBar, когда фрагмент страницы загружается, но этот код, выполняющийся в функции ready, не работает должным образом:

function ready(element, options) {
    var appBar = document.getElementById("appBar").winControl;
    appBar.disabled = false;
    appBar.show();
}

Как показать панель приложений при загрузке фрагмента страницы?

3 ответа

Предполагая, что вы правильно создаете панель приложения в файле HTML.

Затем в ready метод, вы должны сначала вызвать

WinJS.UI.processAll(elements)
        .then(function () {
              var appbar = document.getElementById("appBar");
              if (appbar) {
                  appbar.winControl.show();
              }
         });

Согласно документации MSDN, processAll функция "применяет декларативную привязку управления ко всем элементам, начиная с указанного корневого элемента." (т.е. превращение всех элементов HTML в элементы управления WinJS)

Если вы получили нулевую ошибку, вызовите WinJS.UI.processAll() в вашем коде инициализации.

WinJS.UI.processAll();
appBar.winControl.show();

HTML

<div id="appBar" data-win-control="WinJS.UI.AppBar" data-win-options="{placement:'bottom'}">

Я пробовал следующий кусок кода:

document.getElementById("appBar").winControl.show()

И все работает как положено (панель приложения отображается при загрузке страницы).

Так же, как и в примере с msdn: Пример панели приложения

Кажется, у вас есть другая проблема (недопустимые элементы управления на панели приложения или что-то еще).

Не могли бы вы предоставить более подробную информацию или даже пример приложения?

Другие вопросы по тегам