javascript - 使用 Marionette.js 访问 Eco 模板中的实例方法

标签 javascript templates marionette backbone-views eco

我有简单的 Controller

@Blobber.module "PlacesApp.Show", (Show, App, Backbone, Marionette, $, _) ->

  Show.Controller =

    showPlace: (place) ->
      showView = @getShowView place

      App.mainRegion.show showView

    getShowView: (place) ->
      new Show.Place
        model: place

并查看文件:

@Blobber.module "PlacesApp.Show", (Show, App, Backbone, Marionette, $, _) ->

  class Show.Place extends App.Views.ItemView
    template: "places/show/templates/_place"

我想访问我的 place 模型实例上名为 place.posts() 的方法,该方法返回关联的 Collection通过 Supermodel.js (http://pathable.github.io/supermodel/) 进行模型Post。我正在使用 Eco 模板 ( https://github.com/sstephenson/eco ),并且一直遵循 http://www.backbonerails.com 教程中的模式。 。

有人知道我应该如何访问我的 Eco 模板中的相关帖子吗?最好我希望能够访问实际的方法 .posts() 但我会满足于在我的 View 中创建一个 posts 变量并将其传递到模板中。

谢谢,如果您需要更多信息,请询问。

最佳答案

我通常通过以下两种方式之一来做这样的事情:

  1. Show.Place View 中覆盖 serializeData(),在结果 json 中包含 posts() 数据,然后访问帖子模板中的数据由 @posts 提供。

  2. 重写 View 中的templateHelpers(),并通过@posts()访问模板中的帖子数据。

检查https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.view.md了解更多信息。

关于javascript - 使用 Marionette.js 访问 Eco 模板中的实例方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18993480/

相关文章:

javascript - 为什么在React中未定义此数组?

c++ - 如何通过英特尔 C++ 编译器 (ICC) 在三种方法上使用 SFINAE?

c++ - 两种模板示例的区别是什么?

c++ - 将可变函数作为参数传递

javascript - Maerionette 给出 ReferenceError : menuGroup is not defined

javascript - Backbone : Unable to override constructor

Javascript:函数中的变量重新声明导致未定义

javascript - 使用 Chrome 的 datetime-local 自动填充 Date() UTC

javascript - 书签 window.open 被大多数浏览器阻止,delicious/tumbler 则不会

events - 带有事件的 Backbone 传递对象