2011-12-16 12 views
1

に私はJSONファイル私は道場のモバイルでの動的なページを作成したい道場

{ 
    Introduction: 
    [ 
     { 
      title: "Introduction", 
      toolbar: "Page 1", 
      content: "cont, aabitant morbi tristique..." 
     }, 
     { 
      title: "about", 
      toolbar: "Page 2", 
      content: "contesent vel nisi ipsum..." 
     }, 
     { 
      title: "services", 
      toolbar: "Page 3", 
      content: "Cras adipiscing sapien nec..." 
     } 
    ] 
} 

を持って、JSONから動的なページを作成します。上記のJsonから3ページが前後に移動して作成されます。私は問題を抱えている。私はJsonを次のように読んでいます:

dojo.xhrPost({ 
     url: "start.json", 
     handleAs: "json", 
      var viewContainer = new dojox.mobile.ScrollableView({id:"viewContainer"}); 
     load: function(response) { 
      for (key in response){ 
         // creating each view heading and content here......... 
         //can you give some hint what should be here? 
        } 
     } 

私は上記のjsonを読んで、動的なビューを作成する方法を教えてください。 //can you give some hint what should be here?

答えて

1

まず、あなたは間違った方法でJSONを読んでいるコードでは、この行をどのように置き換えることができます。 dojo.xhrPostは、urlパラメータで指定したURLにデータを送信します。urlパラメータでファイルを取得しません。あなたがやっているようにすると、「start.json status:500を読み込めません」というエラーが表示されます。

あなたの場合、ファイルを読むには、代わりにdojo.xhrGetを使用します。

次に、あなたのviewContainer変数は、引数の途中で配置しないでください(オブジェクトプロパティ(!!!)の真ん中にコードを混在させて書く)。

そう...あなたはこのような何かをすることによって、あなたが望むものを達成することができるはずです。

require(["dojo/dom-construct", 
    "dojo/_base/xhr", 
    "dojox/mobile/parser", 
    "dojox/mobile", 
    "dojox/mobile/ScrollableView", 
    "dojox/mobile/Heading"], 
      function(domConstruct) { 

       dojo.xhrGet({ 
        url : 'start.json', 
        handleAs : "json", 
        load : function(response) { 

         dojo.forEach(response.Introduction, function(page){ 
          var node = domConstruct.create("div", {id : page.title}, "viewsContainer", "last"); 
          var view = new dojox.mobile.ScrollableView({ 
           id : page.title 
          }, node); 
          view.addChild(new dojox.mobile.Heading({label : page.title})); 
          view.startup(); 
         }); 
        }, 
        error : function(err) { 
         console.debug("Error : ", err); 
        } 
       }); 
      } 
     ); 
1
load: function(response) { 
     for (key in response.Introduction){ 
        // creating each view heading and content here......... 
       } 

and try to debug data for key it should be any object that you pass 3 obj in json... 
+0

感謝。私は質問を更新しました。 //ここに何があるべきかのヒントを教えてください。 –

1
here each key has three property that you define in json,now u can inject values to html view 
by accessing property like this key.title,key.toolbar....,ex:- $('<p>' + key.title + '</p>'); 
+0

私はdojo mobileを使用していますので、htmlに値を注入すると効果がありません。私は新しいp()などのようなものを作ってそれを追加する必要があります。 –

+0

はい、あなたもそれを行うことができますが、あなたがキーオブジェクトによってアクセスできると思います... – pravin

+0

私の質問のこの部分を参照してください:/ /あなたは何がここにあるべきであるいくつかのヒントを与えることができますか? –

関連する問題