私は Yeoman、Grunt、および Bower を使用して、バックエンドから独立してフロントエンドを構築するためのプラットフォームを構築しています。私の(AngularJS)コントローラー、サービス、工場などのすべてがこのプロジェクトに存在し、その後、gruntビルドの結果に基づいてサーバー側のコードベースに注入されるという考えです。
私の質問は:
Grunt サーバーが (Rails) アプリと同じエンドポイントに応答するように、エンドポイントをモックするにはどうすればよいですか?
現時点で私は使用しています:
angular.module('myApp', ['ngResource'])
.run(['$rootScope', function ($rootScope) {
$rootScope.testState = 'test';
}]);
そして、私の個々のサービスのそれぞれで:
mockJSON = {'foo': 'myMockJSON'}
そして、すべての方法で:
if($rootScope.testState == 'test'){
return mockJSON;
}
else {
real service logic with $q/$http goes here
}
その後grunt build
、testState = 'test'
が削除されます。
これは明らかに比較的ぎこちないアーキテクチャです。どうすれば回避できますか?Grunt をアプリと同じエンドポイントに応答させるには (動的パラメーターを持つものもあります)、ロジックを適用し (必要に応じて)、json ファイルを提供します (おそらくパス パラメーターに依存します)。