下划线模板:按名称查找变量

时间:2014-12-05 21:12:05

标签: javascript templates backbone.js underscore.js marionette

我正在寻找一种方法来查找传递给下划线模板的变量的值,使用包含变量名称的字符串。例如,假设我的模板包含以下内容:

<% _.each(detailFields, function(fieldName) { %>
    <% print(getValueByName(fieldName)); %>
<% } %>

getValueByName()是我正在寻找的功能。根据下划线文档,传递给_.template()的值将使用'with'语句放入本地范围。如果我理解正确,这意味着窗口[fieldName]或此[fieldName]将不起作用。 eval(fieldName)是一个选项,但我宁愿避免使用eval()。

1 个答案:

答案 0 :(得分:0)

感谢mu,有时我会想念显而易见的。 :)我以为Backbone.Marionette只传递了模型的属性。我没有意识到它也在传递整个模型,它甚至被方便地命名为#34; model&#34;。 model.attributes [fieldName]解决了我的问题。