使用Marionette将全局帮助器注入所有下划线模板

时间:2014-05-29 07:51:11

标签: marionette view-helpers underscore.js-templating

这最初是an other question的第二部分,我能够将其分离出来,以便更好地搜索索引。参考更具体的背景可能会有所帮助。

我的问题是:如何优雅地将全局视图助手注入所有下划线模板

这些问题直接来自i18next documentation。在项目中切换到车把模板为时已晚,但到目前为止,我更喜欢使用registerHelper样式处理它的方式。 在那边搜索,我遇到Derick Bailey's View Helpers article,像往常一样,为一个不优雅的问题提供了一个非常巧妙的解决方案。

在我们的架构中,我们决定为所有视图重新实现serializeData,而不是依赖于默认实现(从视图绑定的模型中导出所有属性)。我对这个问题的看法是,如果我想得到任何接近registerHelper样式的东西,我将不得不扩展基类Marionette.View类,并通过继承提供注入所有视图的基本助手。
这似乎与车把助手的清洁度几乎没有关系,让它完全起作用,这点似乎不过是肯定的。

非常感谢提供任何关于解决此问题的路径的示例或任何提示。

谢谢。

[编辑]

我找到了这个确切问题的解决方案,详见my previous question。 西蒙还发布了一个也很有效的答案。

1 个答案:

答案 0 :(得分:3)

为什么不使用木偶手柄?您可以使用任何您喜欢的模板库。查看this或根据木偶docs编写您自己的集成。我自己也做了这件事,将DustJS与Marionette融为一体。

修改

可以很好地工作的是在下划线对象上创建templateHelpers属性。然后你可以做类似的事情:

<span><%= _.templateHelpers.someHelper(data) %></span>