在 Backbone JS 中,我在哪里定义多个视图之间共享的功能?

In Backbone JS, where do I define functionality shared between several views?

我的 Backbone JS 应用程序使用了一堆 Web 服务,虽然有些服务特定于某些视图,但有些服务调用在站点的许多地方使用。这些应该在哪里定义?他们属于像 myApp.webServices 这样的地方吗?

例如,假设该应用程序使用用户目录 Web 服务和天气数据服务,并且许多不同的地方都需要这些服务。这是方法吗?

myApp.webServices = {

  userDirectory: {
    getUser: function(userID) {
      // Do service call
      return foo;
    }
  },

  weather: {
    getWeather: function(cityName) {
      // Do service call
      return bar;
    }
  }
}

我会像在其他任何地方组织它一样组织它:UserDirectoryWeatherService 不属于任何其他部分,因此它们属于自己的模块。

我用的是 ES6,所以在任何需要它们的地方(例如,在你的每个视图中):

import Weather from "services/Weather";
import Directory from "directories/Users";

无需将它们绑定到一个整体。 Backbone的强大之处在于不需要任何一种方式,所以只需对应用程序结构做出合理的决定,然后据此加载文件。