2017-01-13 8 views
0

私はFramework7のUrban Dictionary APIの例の上で作業しています。Dom7 - getJsonは動作しますがデータを転送できません

これはURLから結果のJSONである(編集はなぜ私に聞かないでください、それは「A」で始まる):

a{ 
    "bills": [ 
    { 
     "id": 8, 
     "name_id": "6", 
     "category_id": 4, 
     "isPaid": "Yes", 
     "value": "190.00", 
     "expiry": "2016-12-15 00:00:00", 
     "created_at": "2017-01-04 15:44:00", 
     "updated_at": "2017-01-04 15:44:00", 
     "name": { 
     "id": 6, 
     "name": "Test1", 
     "created_at": "2017-01-04 15:39:45", 
     "updated_at": "2017-01-04 15:39:45" 
     }, 
     "category": { 
     "id": 4, 
     "name": "System", 
     "created_at": "2017-01-04 15:37:43", 
     "updated_at": "2017-01-04 15:37:43" 
     } 
    } 
    ] 
} 

これは私のアプリのコードの一部です。 JS:

function getrandom() { 
    // Get JSON Data from UrbanDictionary API 
    $$.getJSON('http://[privateurl]', function (json) { 

// Insert rendered template 
    $$('#content-wrap').html(compiledTemplate(json)); 
    }); 
}; 

私がやって結果を取得しよう:console.log(getrandom());

を私が手:Undefined

私のリストはロードされません。

   {{#each list}} 
       <li> 
       <a href="{{bill_id}}" class="item-link item-content external" target="_blank"> 
        <div class="item-inner"> 
        <div class="item-title-row"> 
         <div class="item-title">"{{bill_id}}"</div> 
         <div class="item-text">by {{value}}</div> 
        </div> 
        </div> 
       </a> 
       </li> 
       {{/each}} 

しかし、私はこれを行う場合:console.log($$.getJSON('http://hiddenapiurl'));

私は結果だけで罰金を取得します。

edit:実際の都市辞書のAPIは正常に動作します。しかし、私は何らかの理由ではありません。以下は

EDIT2

私-app.jsのための全体のコードです:

var myApp = new Framework7({}); 

var $$ = Dom7; 

// Select Template 
var template = $$('#random-template').html(); 

// Compile and render 
var compiledTemplate = Template7.compile(template); 

// Defined as function "getrandom" 
function getrandom() { 
    $$.getJSON('http://[privateurl]', function (json) { 

    // Insert rendered template 
    console.log(json); 
    $$('#content-wrap').html(compiledTemplate(json)); 
    }); 
}; 


console.log($$.getJSON('http://[privateurl]')); 

getrandom(); 

// Select Pull to refresh content 
var ptrContent = $$('.pull-to-refresh-content'); 

// On refresh 
ptrContent.on('refresh', function (e) { 
    // Emulate 1s loading 
    setTimeout(function() { 

    // Execute getrandom to get new Definitions 
    getrandom(); 

    myApp.pullToRefreshDone(); 
    }, 1000); 
}); 


var mainView = myApp.addView('.view-main', { 
    dynamicNavbar: true 
}); 

答えて

1

まず、getrandom()機能はconsole.log(getrandom())Undefinedを言う理由です、returnを持っていません!

第2に、compiledTemplateでコンパイルするテンプレートはどこから選択されましたか?例えば

var searchTemplate = $('#list-template').html(); 
    var compiledSearchTemplate = Template7.compile(searchTemplate); 

    myApp.onPageInit('search', function (page) { 
     // Just execute compiled search template with required content: 
     var html = compiledSearchTemplate({/*...some data...*/}); 

     // Do something with html... 
    });   

Framework7例を再確認してください。

EDIT 2:あなたのJSON配列名はbillsている間

は、なぜあなたはeach listを言っているの? each billsまたはeach this.billsをお試しください。

aあなたのjsonファイルの先頭にaの文字があるため、気になることがあります。

enter image description here

幸運の男!

+0

ええ、そうです、私はずっと前にそれを理解しました。私が興味をそそっているのは、 'console.log(json);をたたくと、関数の中で関数が実行されたときに何も返されないということです。 APIを別のものに切り替えると正常に動作します。私に迷惑をかけるもう一つの事は、私のジョンソンが何らかの理由でアルファベット「a」で始まっていることです。私はそれがそれと何か関係があるのだろうかと思う。 – Rosenberg

+0

メインポストに編集全体としてコードを追加しました。ありがとうございます。 – Rosenberg

+0

ああ、あなたが正しいです。しかし、それはまだ動作しません。私はそれに近いと感じています。私のバックエンドのために私はlaravelを使用しています。私は絶対に**アイデアはありません**なぜそれが出力されているのですか?私が確信していることは、それがjsonとしてそれを読んでいないということです。おそらく、それが 'a'のためか、ヘッダーのためでしょうか?その理由は、「a」のためです。努力を続けます、ありがとう。 – Rosenberg

関連する問題