-2

Intel AppFramework に問題があります。サイドメニューが機能していないようです。

AppFramework Web サイトからダウンロードできるデモでは正常に動作していますが、どれだけうまく模倣しようとしても、プロジェクトでサイドメニューを動作させることができません。

タグを追加するまでは、サイドメニューを作成する方法であるため、すべてが正常に機能しています。これらのタグが追加されると、アプリ全体が空白/白でレンダリングされ、"Uncaught TypeError: Cannot read property 'hideScrollbars' of undefined"というエラーがコンソールに表示されます。

appframework.ui.js の 1100 行目と関係があります。this.scrollingDivs.menu_scroller.hideScrollbars();

したがって、この menu_scroller は何らかの理由で未定義のようです。

これは私が提供できる限りのコードです。これは私の AppFramework / Phonegap アプリの index.html です: http://pastebin.com/dXtTeiKx

コンソールは、欠落しているファイルについては何も言わず (PC のため問題ない cordova.js を除く)、私が言った以外の JavaScript エラーもスローしません。他のすべてのファイル。

AppFramework バージョン 3.0 でタグを試しました。

また、appframework の前に appframework.ui を含め、いくつかのインクルードを index.html の最後に配置するなど、JavaScript のインクルードを少し切り替えてみましたが、これまでのところ問題が解決した場合は何もありません。

また、余分な css と js のインクルードをすべて削除しようとしましたが、それもうまくいきませんでした。

これにより、AppFramework 自体に何らかのバグがあるか、ひどく間違ったことをしているだけか、何かを監督しただけであると信じるようになりました。

AppFrameworks サイドメニューのドキュメントは次のとおりです。 、地獄私も全体をコピーしようとしました

<nav id="leftMenu" class="view"> <header><h1>Left Menu</h1></header> <div class="pages"> <div class="panel active"> This is the left menu </div> </div> </nav>

...しかし、それは何も変わりませんでした。

4

1 に答える 1

1

だから私は自分で問題をうまく解決しました。バックグラウンドで AppFramework がどのような魔法を行うのかはわかりませんが、ナビゲーションが機能しない原因となった問題は、次のように定義されたパネルを持っていたことです。

<div data-title="Main menu" id="menu" class="panel" data-footer = "main_footer" data-header = "main_header" data-nav = "main_leftmenu">
    This is the main menu
</div>

nav は次のように正しく定義されました。

<nav class = "view" id = "main_leftmenu">
    <ul class = "list">
        <li><a href = "#">asd</a></li>
        <li><a href = "#">asd</a></li>
        <li><a href = "#">asd</a></li>
    </ul>
</nav>

私が言ったように、問題はパネルにありました。ご覧のとおり、「メニュー」の ID があります。これがナビゲーションを壊した原因です。パネルの ID としての「メニュー」は、保存された単語か何かである可能性が高いため、使用しないでください。

AppFramework を使用する場合は、すべて (特にパネル) の前に次のようなプレフィックスを付けることをお勧めします。

<div data-title="Main menu" id="f_main_menu" class="panel" data-footer = "main_footer" data-header = "main_header" data-nav = "main_leftmenu">
    This is the main menu
</div>

ここでは、「メイン」パネルの前に「f_」プレフィックスを付けました (「_main」もありますが、これは余分なので、パネルについて詳しく説明します)。

要するに

パネル ID にプレフィックスを付け、「メイン」または「メニュー」の ID を付けないでください。代わりに「x_main」や「x_menu」などを使用してください。

于 2015-02-13T15:14:37.090 に答える