我想在页面片段加载时显示 AppBar,但是在 ready 函数中运行的这段代码没有按预期工作:
function ready(element, options) {
var appBar = document.getElementById("appBar").winControl;
appBar.disabled = false;
appBar.show();
}
页面片段加载时如何显示 AppBar?
我想在页面片段加载时显示 AppBar,但是在 ready 函数中运行的这段代码没有按预期工作:
function ready(element, options) {
var appBar = document.getElementById("appBar").winControl;
appBar.disabled = false;
appBar.show();
}
页面片段加载时如何显示 AppBar?
假设您在 HTML 文件中正确创建了 appbar。
然后,在ready
方法中,你应该首先调用
WinJS.UI.processAll(elements)
.then(function () {
var appbar = document.getElementById("appBar");
if (appbar) {
appbar.winControl.show();
}
});
根据MSDN 文档,processAll
函数“将声明性控件绑定应用于所有元素,从指定的根元素开始。” (即把所有的html元素变成WinJS控件)
我尝试了以下代码:
document.getElementById("appBar").winControl.show()
它按预期工作(应用栏显示在页面加载上)。
在 msdn 示例中也使用了相同的方式: App bar 示例
看来您还有另一个问题(应用栏或其他内容上的控件无效)。
您能否提供更多详细信息甚至应用示例?
如果您在初始化代码中收到 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'}">