我正在使用Framework7的Urban Dictionary api示例。
这是来自网址的结果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"
}
}
]
}
这是my-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'));
我的结果很好。
编辑:实际的城市词典api正常工作。但我的出于某种原因并不是这样。
EDIT2
以下是my-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
});
答案 0 :(得分:1)
首先,getrandom()
函数没有return
,这就是console.log(getrandom())
说Undefined
的原因!
其次,您在哪里选择了使用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:
为什么在json数组名称为each list
时说bills
?
尝试使用each bills
或each this.bills
。
而a
困扰着你,因为你的json文件在它的开头有一个a
字母!