下划线模板的自定义解析

时间:2015-05-01 17:02:59

标签: javascript templates backbone.js underscore.js

我编写了一个带字符串的函数,并从骨干模型返回信息。但是,它不是直接从模型中提取直接属性,而是使用属性来形成更复杂的数据 - 例如,日期解析或获取用于特定类型对象的正确图标 -

// returns a parsed date modified with format MM/DD/YYYY
parseString("dateProperty:MM/DD/YYYY:dateModified");
// returns the HTML needed to display an icon based on the model type.
parseString("icon:type");

现在我在模板本身内调用我的解析函数 -

<div>Date modified <%= parseString("dateProperty:MM/DD/YYYY:" + dateModified) %></div>

但是我希望能够自动将我的解析功能应用于每个值,而不是仅仅推送我的Backbone模型并直接应用这些属性。

基本上,我希望能够使用我的模板执行此操作 -

<div>Date modified <%= dateProperty:MM/DD/YYYY:dateModified %></div>

dateProperty:MM/DD/YYYY:dateModified发送至parseString

这是一个相当大的Backbone设置的一部分,parseString函数在我用来构建我的模型和集合的整个JSON中使用;如果模板中字符串的行为相同,我会喜欢它。

1 个答案:

答案 0 :(得分:1)

如果您真的想要这种语法,我认为您最好的选择是&#34;复制&#34; {1}代码中的下划线,并在那里添加对自定义语法的支持。

如果你的语法更适合像函数调用那样的JavaScript

_.template

还有一些其他选项(全局,在模板<%= z$("dateProperty:MM/DD/YYYY:dateModified") %> 语句中的对象中混合等)。就目前而言,你几乎必须自己实现它。

或者你可以采用更有特色的模板语言。