Backbone.js查看动态设置的标记名?

Jam*_*ght 2 html javascript backbone.js

我正在尝试使用jQueryMobile和Backbone.js为Phonegap项目设置基础架构
我们将针对多个平台并计划在未来进行扩展.
我希望我的Backbone代码完全不知道与Views相关的HTML元素的类型,因为我们不知道这些视图在整个平台上会是什么样子.
一个简单的例子是,在一个平台上,一个项目列表可能是由一个ULLI元素组成的,但在另一个平台上,由于某种原因我们可能想要将它切换到一个DIVP元素.

目前,如果我没有指定tagName,则默认为a DIV.
我希望能够在一个页面上提供这样的模板:

<script id="attachmentTemplate" type="text/template">
     <li><a href="#"><%= title %></a></li>
</script>
Run Code Online (Sandbox Code Playgroud)

在另一个提供:

<script id="attachmentTemplate" type="text/template">
    <p><a href="#"><%= title %></a></p>
</script>
Run Code Online (Sandbox Code Playgroud)

如果没有指定tagName,我就不能这样做(正如我所说,默认为DIV).

有没有人有任何建议或方法来做到这一点?关键是我不希望Javascript知道HTML元素的类型,我希望HTML能够定义它.

sol*_*mka 13

您可以在视图中使用函数指定tagName属性,因此它将是动态的.

...

tagName: function(){
    return this.model.get('tagName');
},

...
Run Code Online (Sandbox Code Playgroud)

查看这个小提琴http://jsfiddle.net/b7mR6/

  • 这是正确的解决方案!@james-p-wright你应该接受这个! (2认同)