3

我有一个带有 2 个不同角度应用程序(也共享一些代码)的 rails 3 应用程序,我将它们包含在 rails 应用程序的不同区域,即,

app1.js

//= require vendor/angular.min
//= require vendor/angular-resource

//= require app/app1

//= require services/SomeService

//= require controllers/App2SpecificController

应用程序/app1.js

(function() {
  "use strict";

  var App = App || {};
  App.Controllers = angular.module('App.Controllers', []);
  App.Services = angular.module('App.Services', ["ngResource"]);

  // Make App global
  window.App = App;

  angular.module('App', [
      "App.Controllers",
      "App.Directives",
      "App.Services"
    ])
    .config(['$routeProvider', function($routeProvider) {
      $routeProvider.
        // some routes
    }]);
})();

app2.js

//= require vendor/angular.min
//= require vendor/angular-resource

//= require app/app2

//= require services/SomeService

//= require controllers/App2SpecificController

应用程序/app2.js

(function() {
  "use strict";

  var App = App || {};
  App.Controllers = angular.module('App.Controllers', []);
  App.Services = angular.module('App.Services', ["ngResource"]);

  // Make App global
  window.App = App;

  angular.module('App', [
      "App.Controllers",
      "App.Directives",
      "App.Services"
    ])
    // No routes required
})();

我已经设置了jasmine-gem来测试其中一个应用程序,但不知道如何将其扩展到这两个应用程序。

我能想到的一些选择:

  • Fork jasmine-gem 以便能够使用多个jasmine.yml配置文件运行,并且只需要一个接一个地运行测试 - 但这感觉可能有点矫枉过正。
  • 将这些应用程序组合为 1 个 Angular 应用程序,但这将很难做到,因为它们的工作方式非常不同(一个是更多的 angular-ly,一个是更多的 rails-y)。

还有其他选择吗?

4

1 回答 1

0

您可以重命名 app1 和 app2 模块,但仍将它们分配给相同的全局 var App。

window.app = angular.module('App1', [ ... ]);

window.app = angular.module('App2', [ ... ]);

通过重命名每个模块,您可以在 jasmine 测试中分别加载每个应用程序。

于 2013-10-12T16:32:13.697 回答