Dom7 - getJson 工作但无法传输数据

Dom7 - getJson works but unable to transfer data

我正在研究 Urban Dictionary api Framework7 示例。

这是 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"
      }
    }
  ]
}

这是我的一段代码-app.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
});

首先,getrandom() 函数没有 return,这就是为什么 console.log(getrandom())Undefined!

其次,您 select 您使用 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 示例。

编辑 2:

为什么你说 each list 而你的 json 数组名称是 bills? 尝试使用 each billseach this.bills.

还有困扰您的 a,因为您的 json 文件的开头有一个 a 字母!

祝你好运!