如何在不序列化模型的情况下呈现模板数据?
How can I render template data without serializing the model?
这就是我目前的做法,但我想做的是从模板中呈现数据,而不需要这样做(serialized_model.items[0]):
template: function(serialized_model){
var user_data_tmpl = $("#user-data-template").html();
var template = Handlebars.compile(user_data_tmpl);
return template(serialized_model.items[0]);
}
我得到的结果很好,但这是完整的代码:
模型&收藏:
window.UserData = {};
UserData.Model = Backbone.Model.extend();
UserData.Collection = Backbone.Collection.extend({
model:UserData.Model,
url: '/getUserData',
parse: function(response) {
return response.data;
}
});
The View:
UserData.View = Backbone.Marionette.ItemView.extend({
template: function(serialized_model){
var user_data_tmpl = $("#user-data-template").html();
var template = Handlebars.compile(user_data_tmpl);
return template(serialized_model.items[0]);
}
});
模板:
<script id='user-data-template' type='text/x-handlebars-template'>
<a href="#" id="logout"> Logout </a>
uid:{{uid}} username:{{username}} clave:{{clave}}
</script>
JSON: {"success":true,"data":{"logged":true,"uid":14,"clave":14,"depto":9,"nivel":5},"report":null}
我们在代码库中处理这个问题的方式是简单地有一个BaseView
类,我们所有的视图都是从它扩展的。这个视图有一个renderTemplate
方法和一些支持方法,如下所示:
renderTemplate: function() {
this.$el.html(this.templatedHtml());
return this;
},
templatedHtml: function() {
return this.template(this.getTemplateData());
},
getTemplateData: function() {
return _({}).extend(this.model.toJSON());
}
我们的稍微复杂一点,但希望你能理解。关键是,如果您在BaseView
类上构建自己的renderTemplate
方法,那么您可以创建新的视图…
var YourView = BaseView.extend({
template: yourCompiledTemplate
});
var yourViewInstance = new YourView({model: someModel});
// Apply template to yourViewInstance:
yourViewInstance.renderTemplate();
:
- 一切自动发生
- 你不需要重复任何内容
- 如果您想添加更多(例如。你希望能够将模板定义为字符串,或者你想在脚本标签中定义它们并指定这些标签的ID,然后让视图将其编译到Handlebars模板中(为您)添加 非常容易
相关文章:
- 如何在没有ajax的情况下将javascript动态数据发送到php变量
- 如何在不重新加载的情况下提交表单,并使用Node+Express将数据传递回同一页面
- 如何在没有额外空格的情况下从MySQL中检索字符数据
- 如何在javascript已经检测到的情况下将屏幕分辨率数据调整为web
- 如何在不使用TableTool的情况下从jquery数据表中获取选定的行索引
- 如何在不赋值数组变量的情况下读取数组数据
- Gmail 聊天如何在没有长轮询的情况下向用户发送数据
- 如何在不刷新页面的情况下从 PHP 中的 SQL Server 数据库获取数据
- 在不更改大量代码的情况下重新构造Firebase JSON数据
- 使用jquery数据表,我可以't在不破坏FixedHead的情况下生成单元格colspan=3
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- typeaheadjs:如何在不使用缓存数据的情况下调用服务器
- 在没有jsonp的情况下从另一个域获取数据(json格式)
- 如何在不使用AJAX刷新的情况下发送表单的数据
- 在没有JQuery的情况下将JSON数据获取到TVML项目中
- 如何使用 jQuery 在没有类的情况下提取数据
- 如何在没有数据的情况下渲染分部
- 如何在没有web服务器的情况下将变量数据从Python传输到Javascript
- 如何在表空或在jquery数据表中找不到匹配项的情况下添加自定义警告消息
- 在这种情况下,我如何使用Javascript生成充满数据的表行