0

我的模型具有带有特殊字符(从 Web 服务接收)的属性,我需要使用括号表示法来引用这些属性。有没有办法在渲染我的模板时引用这些属性this.model.toJSON()?我目前正在覆盖 toJSON 来映射它们。

更新,另一种可能是最好/最简单的方式:$(this.el).html(this.template({ data: this.model.toJSON() }));并使用data['@invalid-property-#characters'].

更新,示例模板:

<span><%= section_name %></span>
<span><%= @type %></span <!-- won't work -->
<span><%= data['@type'] %></span> <!-- works -->
4

2 回答 2

0
  1. 在模型中覆盖toJSON并以不同方式映射具有特殊字符的属性。
  2. 范围变量以使用括号语法。this.template({ scopedVariable: this.model.toJSON() })并在模板中<%= scopedVariable['@invalid-variable-#name'] %>
于 2012-11-30T12:11:27.313 回答
-1
@type

不是一个有效的 javascript 变量名,所以它不会工作。

编辑 :

除了更改您的属性名称之外,没有其他解决方案,或者通过像您在问题中所做的那样传递一个对象来在变量中限定您的模型。这不仅仅是 javascript 的魔法,如果它不能在 javascript 中工作,它就不能在你的下划线模板中工作,句号。

于 2012-11-29T15:56:34.743 回答