在 Backbone Marionette 应用程序中设置变量

Setting a variable in Backbone Marionette app

我想在网络连接中断时为 "down" 之类的变量赋值。但是,我不确定在哪里以及如何设置 Backbone 中的变量,以便可以从任何视图或模型访问它。我是 Backbone 和 Marionette 的新手。此变量对于执行 REST 端点调用的模块很有用。

在 AngularJS 中,我可以设置一个 http 拦截器或作为 service/factory,但不确定如何在 BackboneJS Marionette 应用程序中设置。

if (networkStatus !== 'down') {
   // do the backbone.fetch()
}

另外,我的想法是不是一个好的方法?

您可以使用 Backbone.Radio,并设置一个 globalState 频道:

var globalStateChannel = Backbone.Radio.channel('globalState')
if(globalStateChannel.request('networkStatus') !== 'down'){ ... }

App 的某个地方,你应该设置回复处理程序:

var globalStateChannel = Backbone.Radio.channel('globalState')
globalStateChannel.reply('networkStatus', function(){
  // put your logic here
  return something
}

当然,每次显式引用频道的时间都非常长 - 你会在 Views 初始化时进行,但这是值得深思的 ^^