web-dev-qa-db-ja.com

Drupalgapからサイトのノードを表示するにはどうすればよいですか?

Drupalgapを使い始めて、Drupalgap内からノードIDでDrupalサイト上のノードにアクセスしようとしています。 Node および Node Services ドキュメンテーション。 node_page_view(nid) 関数を次のように使用できると思いました:

function mymodule_sample_page() {
  try {
    node_load(11, {
        success:function(node){
        alert("Loaded " + node.title);
      }
    });
    return node_page_view(11);
  }
  catch (error) { console.log('mymodule_sample_page - ' + error); }
}

しかし、モジュールでこれをテストしようとすると、「Loaded your node」というアラートが表示されますが、コンテンツは実際にはnode_page_view()によってページに表示されません。コンテンツを表示するにはどうすればよいですか?

1
Patrick Kenny

mymodule_sample_page()では、空のdivコンテナを返します。次に例を示します。

_<div id="my_node_11"></div>_

次に、pageshowハンドラーをhook_menu()を介してページにアタッチし、次にpageshowハンドラーでnode_load()を呼び出して、コンテンツを空のdivコンテナーに挿入します。

_page_callback_は、ページが実際に表示された後にすべての非同期呼び出しを処理する必要があるため、その中に非同期呼び出しを含めることはできません。

ちなみに、DrupalGapにはノードを表示するためのサポートが組み込まれており、アプリで_node/11_に移動するだけです。次に、pageshowを示す簡単な例を示します。 http://www.drupalgap.org/node/154

2

タイラーに感謝します。私はより詳細に答えを出し、私の成功した実験によって証明されました。これがいくつかの助けになることを願っています。

function mymodule_sample_page() {
  var display_page = '<div id="my_node_11"></div>'; 

  return display_page;
}

function mymodule_sample_pageshow() {
  try{
        var nid = 11;
        node_load(nid, {
        success:function(node){

         var content = node.content;

         $('#' + 'my_node_' + nid).html(content).trigger('create');
          }
        });
   }
  catch (error) { console.log('mymodule_sample_page - ' + error); }
}
0
artphys