如何将查询值传递给Framework 7中的新页面

时间:2017-03-23 19:50:14

标签: html-framework-7

我在 Framework7 中的api调用返回了数据 - material / Android - 我使用原型'each'函数循环它到目前为止一直很好......

    alldata.awards.forEach(function ( item ) {
            var linkToDetails = '<a href="detail.html?rec='+item+'&ctg='+item.catgicon+'" class="button button-fill"><b>VIEW RECORD</b></a>'
    }

    var detailpg = myapp.onPageInit('detail', function ( page ) 
    {       
        $$('#results-card .facebook-avatar img').prop('src', page.query.ctg);
                $$('#results-card .facebook-bname').html(page.query.rec.businessName);      

    }).trigger();

根据F7文档,我们可以通过被调用方法中的“page”对象访问查询字符串,因此:page.query.QueryKey

'page.query.ctg'输出'ctg'查询值ok,但由于'rec'持有一个完整的对象,我似乎无法访问属性值。当我控制台,记录它 - 获取[对象对象] - 无论我尝试什么,我无法获得对象内的数据。这是我试过的:

* console.log( page.query.rec.BusinessName )        // outputs nothing
* console.log( page.query.rec['BusinessName'] )     // outputs nothing
* console.log( page.query.rec[0]['BusinessName'] )  // outputs nothing
* console.log( page.query.rec )                     // outputs [object object]
* console.log( page.query.rec[0] )                  // outputs [
* console.log( JSON.stringify(page.query.rec) )     // outputs "[object object]"

我很难过 - 我可以将每个属性作为单独的查询字符串值传递,但是对象中有近40个项目因此不方便且不好练习。 它是Framework7的具体问题吗?或者我这样做是错的吗?

1 个答案:

答案 0 :(得分:0)

假设page.query.ctg是对象的id。

其中一种方法是将ctg值传递给下一页,然后从数据库中获取对象的剩余数据。您可以利用.onPageInit来调用提取功能。以下是使用axios.onPageInit

的示例代码
myApp.onPageInit('show_project', function (page) {
    if (page.query != undefined && page.query.ctg != undefined){
      axios.get("/data/" + page.query.ctg + ".json")
      .then(function (response) {
          console.log(response)
      })
      .catch(function (error) {
          console.log(error)
      })
    }
})