3

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

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

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

4

3 回答 3

7

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

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

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

根据MSDN 文档processAll函数“将声明性控件绑定应用于所有元素,从指定的根元素开始。” (即把所有的html元素变成WinJS控件)

于 2012-03-20T16:45:40.047 回答
0

我尝试了以下代码:

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

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

在 msdn 示例中也使用了相同的方式: App bar 示例

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

您能否提供更多详细信息甚至应用示例?

于 2012-03-20T09:27:19.443 回答
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'}">
于 2015-04-16T10:20:07.220 回答