javascript - Coffeescript 未捕获类型错误 : object is not a function Error

标签 javascript backbone.js coffeescript marionette

知道为什么 @layout = @getLayoutView() 行抛出 Uncaught TypeError: object is not a function 错误吗?我似乎无法弄清楚。一如既往,非常感谢任何帮助!

list_controller.js.coffee:

@Demo.module "UsersApp.List", (List, App, Backbone, Marionette, $, _) ->

    List.Controller =

      listUsers: ->
        users = App.request "user:entities"
        @layout = @getLayoutView()
        App.mainRegion.show @layout

      getLayoutView: ->
        new List.Layout

list_view.js.咖啡:

@Demo.module "UsersApp.List", (List, App, Backbone, Marionette, $, _) ->

  List.Layout = new Marionette.LayoutView
    template: "users/list/templates/list_layout"

编辑添加路由逻辑

user_app.js.coffee:

@Demo.module "UsersApp", (UsersApp, App, Backbone, Marionette, $, _) ->

    class UsersApp.Router extends Marionette.AppRouter
        appRoutes:
            "users": "listUsers"

    API =
        listUsers: ->
            UsersApp.List.Controller.listUsers()

    App.addInitializer ->
        new UsersApp.Router
            controller: API

app.js.咖啡:

@Demo = do (Backbone, Marionette) ->

  App = new Marionette.Application

  App.rootRoute = "users"

  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()
      @navigate(@rootRoute, trigger: true) if @getCurrentRoute() is ""

  App

最佳答案

我猜你应该从“Marionette.LayoutView”扩展List.Layout,但这里的代码片段创建了“Marionette.LayoutView”的实例。代码

List.Layout = new Marionette.LayoutView
    template: "users/list/templates/list_layout"

应该是

class List.Layout extends  Marionette.LayoutView
   template: "users/list/templates/list_layout"

关于javascript - Coffeescript 未捕获类型错误 : object is not a function Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24870261/

相关文章:

javascript - javascript 上的预期十六进制

javascript - 使用 Coffeescript 设置 AngularJS Controller 属性不能是最后一行

Visual Studio 2013 .coffee 文件中的 Javascript 引用和 Intellisense

javascript - jQuery "for"循环

javascript - 如何在 google map html 页面上打开/关闭 geojson 图层

javascript - 我需要帮助使用 Flexbox 填充 100% 的计算机屏幕高度

javascript - 自动 slider 动画不起作用

backbone.js - Marionette.CompositeView 如何在不使用任何模型的情况下将参数传递给模板

javascript - 如何在 backbone.js 中使用 subview

node.js - Cucumber JS 并真正完成了一些事情