首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >木偶JST模板渲染

木偶JST模板渲染
EN

Stack Overflow用户
提问于 2015-09-01 02:36:49
回答 1查看 386关注 0票数 0

我试图让Marionette呈现我的JST模板,在Rails环境中工作。根据教程和Marionette官方文档,我必须重写Marionette呈现方法:

代码语言:javascript
复制
Backbone.Marionette.Renderer.render = (template, data) ->
path = JST["path/to/template/" + template]
unless path
    throw "error"
path(data)

当从视图调用模板时:

代码语言:javascript
复制
    class myChildView extends Marionette.ItemView
      template: "specific-template-location/template"

    class myCompositeView extends Marionette.CompositeView
      template: "specific-template-location/template"
      childView: myChildView

我在渲染时得到一个Uncaught error。奇怪的是,当我使用itemView而不是childView时,模板是正确呈现的。我正在使用的教程已经被证明是过时的,但我在正式文档中没有发现childView \ itemView的差异与模板声明之间的任何关联。任何提示都将不胜感激。

附加信息:I也不能直接从DOM传递模板(Marionette呈现重写已删除),即:

代码语言:javascript
复制
    class myCompositeView extends Marionette.CompositeView
      template: "#mytemplate"

还抛出一个no template error。我传递模板的唯一方法是通过下划线模板构造函数_.template(),这至少表明将集合传递给视图没有问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-10 03:57:00

你可以这样做:

代码语言:javascript
复制
do (Marionette) ->
  _.extend Marionette.Renderer,
  lookups: ['path/to/template/apps', 'path/to/template/components']

  render: (template, data) ->
    return unless template
    path = @getTemplate(template)
    throw "Template #{ template } not found!" unless path
    path(data)

  getTemplate: (template) ->
    for lookup in @lookups
      path = "#{ lookup }/#{ template }"
      return JST[path] if JST[path]

我这里有一个例子,也使用Rails

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

https://stackoverflow.com/questions/32322686

复制
相关文章

相似问题

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