【问题标题】:How to show a WinJS AppBar when a page fragment loads?如何在页面片段加载时显示 WinJS AppBar?
【发布时间】:2012-04-03 07:07:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: microsoft-metro winjs appbar


    【解决方案1】:

    我尝试了以下代码:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      那么,在ready方法中,你应该先调用

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

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

      【讨论】:

        【解决方案3】:

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

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

        HTML

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

        【讨论】:

          猜你喜欢
          • 2013-05-13
          • 2012-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多