gpt4 book ai didi

javascript - 主干 Marionette 路线未被调用

转载 作者:行者123 更新时间:2023-12-03 12:13:12 25 4
gpt4 key购买 nike

我正在按照 Brian Mann 的backbonerails.com 教程来学习backbone/marionette。由于某种原因,当我访问 http://localhost:3000/#users 时,不会调用 listUsers 。任何想法或想法都非常感激!

知道我哪里出错了吗?

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

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

UsersApp.API =
listUsers: ->
console.log "listUsers"

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

我还可以向 UsersApp 添加一个初始化程序并让它处理控制台消息。

UsersApp.addInitializer: ->
console.log("initialized UsersApp")

同样,如果我将其添加到

,我也会看到一条日志消息
App.addInitializer ->
console.log "initialized"
new UsersApp.Router
controller: API

直到初始化程序运行之后我才真正启动主干路由:

@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 "initialize:after", ->
if Backbone.history
Backbone.history.start()

应用程序

当使用它时,几乎看起来我的 UsersApp.Router 对象实际上并未被创建。这可能是问题所在吗?

编辑

将 Controller 添加为 UsersApp.API 似乎越来越接近:

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

但现在我遇到了不同的错误:

Uncaught TypeError: Cannot read property 'listUsers' of undefined 

为什么找不到 listUsers 函数?

最佳答案

您尚未定义UserApp.API。您刚刚在函数内定义了一个局部变量 API,并且该变量无论如何都不会公开。

如果您想使用UserApp.API,您需要实际将API设为UserApp的属性。

@Demo.module "UsersApp", (UsersApp, App, Backbone, Marionette, $, _) ->
UserApp.API =
listUsers: ->
# ...

关于javascript - 主干 Marionette 路线未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24857908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com