主干木偶路由未被调用
Backbone Marionette Route Not Being Called
我正在跟随Brian Mann的backbonerails.com教程学习骨干/木偶。由于某种原因,当我去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对象实际上没有被创建。这是问题所在吗?
编辑
添加控制器为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: ->
# ...
我明白了。问题是我在"initialize:after"
事件上启动Backbone.history
,但我真的需要在"start"
事件上启动它:
App.on "start", ->
if Backbone.history
Backbone.history.start()
这样做效果很好。
相关文章:
- 未调用主干路由
- Codeigniter :通过 AJAX 调用 php 脚本时路由不起作用
- 从 javascript 中调用快速路由
- 角度.js - 识别通过路由或 ng 控制器调用的控制器
- 如何从 on 调用调度更改反应路由器路由
- Angularjs:路由后如何调用控制器函数
- 将rails路由调用到CSS(在haml中)
- 从自定义指令调用角度路由
- 如何在Ember中转换到另一个路由时调用一个方法
- nodejs或expressjs在没有返回响应的情况下重复调用路由
- Ember添加了对转换调用上下文(路由/控制器)的检查
- 使用ng-include调用控制器时AngularJS路由解析
- Angular中的ajax调用和路由问题
- 通过express路由调用HTML中的Javascript函数
- 如何调用索引/索引路由'用户后的s模型挂钩's的授权
- 设置快速路由,找不到API调用返回404
- 未调用路由中的AngularJS控制器
- 调用路由中的父控制器函数
- 从js文件调用路由
- AngularJS和Firebase认证在第二次点击之后调用路由