首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有主干的动态JST模板选择

具有主干的动态JST模板选择
EN

Stack Overflow用户
提问于 2012-12-18 15:44:00
回答 1查看 974关注 0票数 0

对于不同的模型,我有一个需要不同模板的视图。

我正在实现一个支付提供者配置,它需要为不同的支付提供者提供一组不同的选项。

下面是我现在视图代码中的内容:

代码语言:javascript
复制
robokassa: JST["payment_providers/robokassa"]
cash: JST["payment_providers/cash"]

render: =>
  template_name = @model.get('name')
  switch template_name
    when "robokassa" then $(@el).html(@robokassa(payment_provider: @model))
    when "cash" then $(@el).html(@cash(payment_provider: @model))        

很管用,但很难看。

我尝试过这样的方法,但是除了简单的用例之外,我找不到关于如何使用JST对象的最终手册:

代码语言:javascript
复制
render: =>
  template_name = @model.get('name')
  $(@el).html(JST["payment_providers/#{template_name}"](payment_provider: @model)

这会返回一个错误,说明它不是一个函数。

我想,理想情况下,解决方案应该是

代码语言:javascript
复制
template: => 
  JST["payment_providers/#{@model.get('name')}"](payment_provider: @model)
...
render: =>
  $(@el).html(@template())

但我想不出怎么把它写好。

更新

后者确实是正确的,缺点是@模型在调用render时没有加载。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-18 15:58:54

在我看来,您的CoffeeScript语法很好。

第一个(工作的)示例与另外两个示例的区别是,在第一个代码示例中,类被计算时访问JST对象,而在后两个示例中,只有在呈现视图时才访问该对象。

JST对象的状态是否在两种状态之间发生了变化,使模板在呈现时不再存在?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13936485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档