我正在Django项目中使用jQuery动态编写几个HTML表单。这就是我现在这样做的方式:
function WriteSomeRandomContent() {
var sContent = "<h3>foobar</h3>";
sContent += "<br />";
sContent += "<p>Gosh ! This is a lot of HTML content !</p>";
...
sContent += "<p>For real dude I have to do it within decades of lines !</p>";
$("#foobar").html(sContent);
}
我想要做的是通过使用某种HTML模板从我的JavaScript函数中删除丑陋的HTML代码,然后我可以在我的sContent
变量中包含。
有没有办法做到这一点,还是有更好的方法来处理JavaScript中的大量HTML代码?
答案 0 :(得分:2)
使用JavaScript模板。像AngularJS,Ember。
答案 1 :(得分:2)
Dust.js,Handlebars.js,jquery模板......以及许多其他类似的东西..
谷歌他们..
答案 2 :(得分:0)
是的,肯定会使用像underscore这样的模板.js提供了一种名为template
的方法<script id="listItem" type="text/template">
<h3>{{ dynamic_text }}</h3>";
<br />
<p>Gosh ! This is a lot of HTML content !</p>
<p>For real dude I have to do it within decades of lines !</p>
</script>
然后使用像backbone.js这样的东西和下划线你可以做到这一点。
App.Views.ListItem = Backbone.View.extend({
tagName: 'li',
template: _.template($('#listItem')),
render: function(){
//binds the model data to our template and then appends it to our view (ex: li )
this.$el.append( this.template( this.model.toJSON ) );
return this;
}
});
您还可以添加模板帮助程序方法,通过执行此操作使事情变得更简单
window.template = function(id){
return _.template($('#' + id));
}
//template: template('listItem')