1

node.js、express、および jade を使用して Web アプリケーションを開発しています。Phonegap アプリケーションで WebView を使用して表示している次の jade テンプレートがあります。

doctype mobile
html
    head
        script(src="cordova-2.1.0.js")
        script
            var ready = function() {
                alert(\'Ready\');
            }
            document.addEventListener("deviceready", ready);
        title= title
        link(rel='stylesheet', href='/stylesheets/style.css')
    body
        block content
            h1= title
            button(id='vibrateButton', onclick='navigator.notification.vibrate(2000);')Confirm
            #services
                - each service in services
                    div.service
                    a(href=service.link)!= service.name
                    div.desc= service.description

このテンプレートが生成するのは、mongo データベースから取得されるアイテムのリスト (説明とリンク) を含む Web ページです。ページは node.js を使用して提供されます

現在、アラート (「準備完了」) が表示されていないため、cordova スクリプトはロードされていません。また、ボタンを押してもデバイスは振動せず、コンソールには次のメッセージが表示されます。

Uncaught TypeError: Cannot call method 'vibrate' of undefined at http://xx.xxx.xx.x:3000/:5

jade を使用して Phonegap スクリプトを含めるにはどうすればよいですか? アラートだけで簡単なスクリプトを読み込もうとしましたが、機能しますが、この場合、なぜ機能しないのかわかりません。

誰でもアドバイスをいただけますか?ありがとう。

4

3 に答える 3

1

スクリプトの後のドットがありません。これを読む:

「タグ内に大きなテキスト ブロックが必要になることがよくあります。インライン スクリプトまたはスタイルが良い例です。これを行うには、タグの後に . を追加します (前にスペースを入れないでください)」

これは、jade-lang リファレンスから取得したものです。

例:

script.
  if (usingJade)
    console.log('you are awesome')
  else
    console.log('use jade')

レンダリングします:

<script>
  if (usingJade)
    console.log('you are awesome')
  else
    console.log('use jade')
</script>
于 2013-12-30T15:49:06.127 に答える
0

これらは決して機能しません。

HTMLページは、サーバー側(ノード)ではなく、クライアント側(アプリ側)にある必要があります。

例。フォルダーの Android phonegap プロジェクトassets\www内。

私はワットSOがあなたのアプリであることを知りませんが、

アプリ クライアント側:ビュー、phonegap、jquery .... およびノー​​ド サーバーにデータを要求するためのすべてのもの。

サーバー側: dbStuff、およびアプリの要求に対するデータを取得するためのすべてのもの。

それが役に立てば幸い。

于 2013-05-02T02:19:24.553 に答える