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 bills
或 each this.bills
.
还有困扰您的 a
,因为您的 json 文件的开头有一个 a
字母!
祝你好运!
我正在研究 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 bills
或 each this.bills
.
还有困扰您的 a
,因为您的 json 文件的开头有一个 a
字母!
祝你好运!