如何在页面片段加载时显示WinJS AppBar?

时间:2012-03-18 14:54:38

标签: microsoft-metro winjs appbar

我想在加载页面片段时显示AppBar,但是在ready函数中运行的代码没有按预期工作:

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

如何在页面片段加载时显示AppBar?

3 个答案:

答案 0 :(得分:7)

假设您正在HTML文件中正确创建appbar。

然后,在ready方法中,您应该先调用

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

根据MSDN documentationprocessAll函数“将声明性控制绑定应用于所有元素,从指定的根元素开始。” (即将所有html元素转换为WinJS控件)

答案 1 :(得分:0)

我尝试过以下代码:

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

它按预期工作(app栏显示在页面加载上)。

同样在msdn示例中使用的方法: App bar sample

您似乎还有另一个问题(应用栏或其他内容上的无效控件)。

您能提供更多详情甚至是应用示例吗?

答案 2 :(得分:0)

如果出现null错误,请在初始化代码中调用WinJS.UI.processAll()。

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

HTML

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