木偶将物体传递给模块

时间:2016-06-14 15:36:40

标签: javascript backbone.js coffeescript marionette

我最近更新了Marionette JS版本2.4.7,在很长一段时间内使用旧版本的Marionette。

我正在初始化module并希望将两个对象传递给此module,一个model和另一个自定义对象foo

layout = new FooBar.Layout
  model: options.model if options.model
  foo: options.foo if options.foo
options.loadRegion.show(layout)

模型在FooBar模块的initialize方法中很好用,但无论我尝试什么,foo对象都不会在FooBar模块的options对象中出现,虽然它在我初始化options之前出现在FooBar.Layout对象中(如上所示)。

我在Marionette的新版本中做错了什么?

1 个答案:

答案 0 :(得分:0)

我意识到问题在于尝试在对象属性声明中运行条件语句,这不起作用。

layout = new FooBar.Layout
  model: options.model if options.model
  foo: options.foo if options.foo

删除条件语句有效:

layout = new FooBar.Layout
  model: options.model
  foo: options.foo

或者在创建新布局之前声明您的对象,以及

opts = nil
opts.model = options.model if options.model
opts.foo = options.foo if options.foo

layout = new FooBar.Layout(opts)