任何想法爲什麼@layout = @getLayoutView()
行會拋出Uncaught TypeError: object is not a function
錯誤?我似乎無法弄清楚。與往常一樣,任何幫助都非常感謝!Coffeescript Uncaught TypeError:對象不是函數錯誤
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.coffee:
@Demo.module "UsersApp.List", (List, App, Backbone, Marionette, $, _) ->
List.Layout = new Marionette.LayoutView
template: "users/list/templates/list_layout"
EDIT添加路由邏輯
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.coffee:
@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
什麼叫'listUsers',爲什麼你期望'@'是什麼特別的,當它調用該函數? –
當然 - 我在上面添加了我的代碼。可能值得注意的是我嘗試刪除這個或@從佈局,但它做同樣的事情。我實際上是在backbonerails.com上關注Brian Mann的教程,後者指出它稍後在控制器中需要。 –
雖然你的問題 - 當用戶導航到localhost:3000/users url時,會調用'listUsers'(或者在通過app.js.coffee中的最後一個函數訪問localhost:3000 url之後路由到那裏) –