我正在研究在backbonerails.com上学习Marionette的教程。看起来视频是使用版本1编写的,但在版本2中,消息传递系统已更改并使用wreqr。
我一直在尝试使用wreqr github示例翻译代码,但不断收到错误。如果有人可以帮助我将此代码翻译成当前的木偶请求/响应系统,我真的很感激!我一直无法找到任何现有的例子。
实体文件中的当前代码:
@Demo.module "Entities", (Entities, App, Backbone, Marionette, $, _) ->
class Entities.Header extends Backbone.Model
class Entities.HeaderCollection extends Backbone.Collection
model: Entities.Header
API =
getHeaders: ->
new Entities.HeaderCollection [
{ name: "Users" }
{ name: "Leads" }
{ name: "Appointments" }
]
App.reqres.addHandler "header:entities", ->
API.getHeaders()
请求实体的标头控制器中的代码:
@Demo.module "HeaderApp.List", (List, App, Backbone, Marionette, $, _) ->
List.Controller =
listHeader: ->
links = App.reqres.request "header:entities"
console.log links
headerView = @getHeaderView links
App.headerRegion.show headerView
getHeaderView: (links) ->
new List.Headers
collection: links
答案 0 :(得分:1)
addHandle 不存在。 替换为 setHandler ,使用请求调用此事件,例如。
# entities
App.reqres.setHandler "header: entities", ->
API.getHeaders()
# controller
links = App.reqres.request links "header: entities"
setHandler函数负责添加您的事件触发器以及回调和上下文,请查看{{3 }}
我在牵线木偶的最新版本中做了一个样本。 我正在使用Wreqr与source code from the marionette的实体API交换事件。
答案 1 :(得分:0)
好的,我不确定为什么在我按照Wreqr文档第10次尝试之后这有效,但这现在可用于设置处理程序:
App.reqres = new Backbone.Wreqr.RequestResponse
App.reqres.setHandler "header:entities", ->
API.getHeaders()