1

我在 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 代码?

编辑


可能重复:从外部文件加载 jQuery 模板?

4

3 回答 3

2

使用 JavaScript 模板。像 AngularJS、Ember 之类的东西。

于 2013-05-30T12:58:23.140 回答
2

Dust.js、Handlebars.js、jquery 模板......和许多其他类似的东西......

谷歌他们..

于 2013-05-30T12:59:23.950 回答
0

是的,肯定会使用某种模板,例如 underscore.js 提供了一种称为模板的方法

<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>

然后使用诸如骨干网之类的东西和下划线你可以做到这一点。

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')
于 2013-05-30T13:10:46.170 回答