2014-07-03 96 views
1

我正在尋找一種在前端開發中尋找夾具數據的方法,但是當我構建javascript的縮小版本時,它將綁定REST調用而不是固定數據。Angular Fixtures for Development with Grunt

我正在使用一種服務來抽象調用後端的實現,所以我應該有兩個服務的Javascript實現,一個用於開發,另一個用於構建,還是有一種更簡單的方法來調用URL並且有攔截URL並返回fixtured數據。

謝謝!

+1

https://docs.angularjs.org/api/ng/service/$http#interceptors – originof

+0

感謝您的鏈接,這正是我需要的=) – dardo

回答

1

添加將從構建中排除的JavaScript文件,但是包括做繁重的發球局時,當地如下:

'use strict'; 

angular.module('myApp') 
    .factory('mockHttpInterceptor', function($q) { 
    return { 
     'request' : function (config) { 
     if (config.url === '/testUrl') { 
      // Rewrite the URL to avoid a 404 locally. 
      config.url = '#/mock/testUrl'; 
     } 
     return config; 
     }, 

     'response' : function (response) { 
     // Check to see if it's the mock url you want to fixture. 
     if (response.config.url === '#/mock/testUrl') { 
      // Set the data you want in the response. 
      response.data = { name: 'John Smith' }; 
     } 
     return response; 
     } 
    } 
    }); 

angular.module('myApp') 
    .config(['$httpProvider', function ($httpProvider) { 
    $httpProvider.interceptors.push('mockHttpInterceptor'); 
    }]); 

希望這有助於!

+0

只是一個更新,如果你想在IE中測試,不要使用#來表示新的URL,IE似乎不喜歡那樣。我用了 ?作爲解決方法。 – dardo