Backbone.js 模板重新渲染并不';t在主干网/木偶网中显示链接-Backbonerail教程

Backbone.js 模板重新渲染并不';t在主干网/木偶网中显示链接-Backbonerail教程,backbone.js,coffeescript,marionette,backbone-views,backbone.js-collections,Backbone.js,Coffeescript,Marionette,Backbone Views,Backbone.js Collections,我正在做一个教程,它有点过时了。我正在尝试呈现headers.jst.eco模板,该模板将“BackBoneRails Demo”显示为标题,并呈现来自Backbone.Collection(列表中的Collection_controller.js.coffee)的链接来自getLinksCollection(下面的代码)。相反,它多次重新呈现标题模板,不加载链接/名称,在屏幕截图中如下所示 这是源代码 app/assets/javascripts/backbone/apps/header/l

我正在做一个教程,它有点过时了。我正在尝试呈现headers.jst.eco模板,该模板将“BackBoneRails Demo”显示为标题,并呈现来自Backbone.Collection(列表中的Collection_controller.js.coffee)的链接来自getLinksCollection(下面的代码)。相反,它多次重新呈现标题模板,不加载链接/名称,在屏幕截图中如下所示

这是源代码

app/assets/javascripts/backbone/apps/header/list/templates/_header.jst.eco

app/assets/javascripts/backbone/apps/header/header\u app.js.coffee

app/assets/javascripts/backbone/app.js.coffee


(没有包含FooterApp代码,因为它可以工作,并且与页眉模板无关)

哈哈,真是巧合。我几天前买了这个系列。我非常喜欢它

木偶有一些微妙的变化
itemView
ìtemViewContainer
现在称为
childView
childViewContainer

List.Headers = App.Views.CompositeView.extend({
    template: 'header/list/templates/headers',
    childView: List.Header,
    childViewContainer: 'ul'
  });

(很抱歉使用了肮脏的JavaScript,但我比CoffeScript更习惯于此;)

谢谢!哦,老兄,我希望教程能更新。由于rails gems等的更新,我必须解决很多问题才能使其正常工作。您还有其他的主干教程吗?@CodeCrack我听到了:)我实际上使用的是后端。但我认为这些小小的颠簸让我学到了更多!我在主干网上找到的其他信息来源都是相当模糊的:(把所有的逻辑放在视图中,等等。我真的很喜欢他的方法。如果你还没有仔细研究过它,我建议除了使用Brians调试技术外,还使用。我实际上是在使用Sails.js进行工作,所以我不介意在讨论这一点的时候切换。我也很惊讶主干资源是否都过时了考虑到它是以前最流行的框架之一,这太棒了。我之所以学习它,是因为我们在后端使用SailsJS,在前端使用主干网/木偶。你有没有办法联系你,也许我们可以在学习本教程时互相帮助!@CodeCrack听起来是个不错的主意!你可以在emtholin@gmail.com
<nav class="navbar navbar-default" id="header">
    <div class="container">
        <div class="pull-left">
            <span class="navbar-brand">BackboneRails Demo</span>
        </div>
        <ul class="nav navbar-nav pull-right">
        </ul>
    </div>
@Demo.module "HeaderApp.List", (List, App, Backbone, Marionette, $, _) ->

  class List.Header extends Marionette.ItemView
    template: "header/list/templates/_header"
    tagName: "li"

  class List.Headers extends Marionette.CompositeView
    template: "header/list/templates/headers"
    itemView: List.Header
    itemViewContainer: "ul"

    </nav>
@Demo.module "HeaderApp.List", (List, App, Backbone, Marionette, $, _) ->

  List.Controller = 

    listHeader: ->
      links = @getLinksCollection()

      headerView = @getHeaderView links
      App.headerRegion.show headerView

    getLinksCollection: ->
      new Backbone.Collection [
        { name: "Link 1"}
        { name: "Link 2"}
        { name: "Link 3"}
        ]

    getHeaderView: (links) ->
      new List.Headers
        collection: links
@Demo.module "HeaderApp", (HeaderApp, App, Backbone, Marionette, $, _) -> 
  @startWithParent = false

  API =
    listHeader: ->
      HeaderApp.List.Controller.listHeader()


  HeaderApp.on "start", ->
    API.listHeader()
@Demo = do (Backbone, Marionette) ->
    App = new Marionette.Application

    App.addRegions
        headerRegion: "#header-region"
        mainRegion: "#main-region"
        footerRegion: "#footer-region"

    App.addInitializer ->
      App.module("HeaderApp").start()
      App.module("FooterApp").start()

    App.on "start", ->
        if Backbone.history
          Backbone.history.start()

    App 
List.Headers = App.Views.CompositeView.extend({
    template: 'header/list/templates/headers',
    childView: List.Header,
    childViewContainer: 'ul'
  });