【发布时间】:2015-05-04 18:06:01
【问题描述】:
主干视图:
var $ = require('jquery'),
Handlebars = require('handlebars'),
Backbone = require('backbone'),
channel = require('../../templates/dashboard/channelstats.html'),
channelstatsCollection = require('../../collections/dashboard/ChannelStatsCollection'),
mainJs = require('../../libs/main');
var ChannelStatsView = Backbone.View.extend({
el: "#divstatsview",
initialize: function () {
this.collection = new channelstatsCollection();
var api_token = mainJs.get_api_token();
this.collection.fetch(
{
headers: {'Authorization': 'Bearer ' + api_token.access_token},
success: function (collection, response, options) {
var tpl = channel;
console.log(JSON.stringify(response));
$(this.el).html(tpl({orders:JSON.stringify(response)}));
}
}
);
}
});
// Our module now returns our view
module.exports = ChannelStatsView;
车把模板:
{{#orders.records}}
{{#by_status}}
<div class="col-lg-2 col-md-6 new-item centered white-panel">
<h2 class="white-header"> {{PROCESSING}}</h2>
<!-- <div class="text-danger"><i class="fa fa-bell fa-3x"></i></div>-->
<div class="clearfix"></div>
<div> <b>{{PROCESSING}} new </b>Orders</div>
<div> <b>{{SHIPPED}} </b3>Pending</div>
<br/>
<div><i class="fa fa-refresh fa-2x"></i></div>
<a href="#" id="btnsync">Sync</a>
</div>
{{/by_status}}
{{/orders.records}}
我的 JSON:
{
"metadata":{
"recordcount":1
},
"records":[
{
"count":0,
"by_status":[
{
"OUTOFSTOCK":0
},
{
"PROCESSING":19,
"by_channel":[
{
"Some":1
},
{
"Some1":18
}
]
},
{
"RECEIVED":0
},
{
"SHIPPED":26,
"by_channel":[
{
"Demo":26
}
]
}
]
}
]
}
我得到一个空白页,但什么也没有显示。
注意:
我正在使用 hbsfy 为我编译我的模板,所以 tpl 是一个已编译的模板,而不是一个 html 文件。
编辑:
我的 json 对象
【问题讨论】:
-
您在编译 Handlebars 模板吗?您是否使用 browserify(或其他一些打包工具)来打包您的 js?如果您是,那么您可以使用 hbsfy 转换来预编译您的模板。您的模板中也有一些错误。看起来您正在尝试遍历记录数组,您将需要使用内置的每个帮助器 {{#each 记录}}{{/each}}。
-
请看我的笔记。
标签: javascript json backbone.js browserify