2015-02-06 55 views
0

我發誓這是工作之前我升級到ngResource 1.3.11 ...AngularJS ngResource自訂參數傳遞兩個「&」到OData服務

所以我的問題是,當我應用自定義過濾器參數去我的OData資源請求,過濾器會在寫入參數之前附加額外的$。

http://myservice/odata/Data?&format=application%2Fjson&$filter=year(Date)+lt+2012 

上述工作通過小提琴手很好,是正確的要求。

我使用ngResource使GET請求

data.factory('DataService', ['$resource', function ($resource) { 
    var odataUrl = 'http://myservice/odata/Data?&format=application%2Fjson'; 
    var d = $resource('', { 
     filter: '@filter' 
    }, {    
     queryByYear: { 
      method: 'GET', 
      url: odataUrl, isArray: false 
     } 
    }); 
    return d; 

}]); 

和控制器功能如下:

$scope.getByYear = function (op) { 

     DataService.queryByYear({ filter: 'year(PublishedDate) ' + op }, function (data) { 
      $scope.events = data; 
     }); 
    }; 

出於某種原因,這個請求的輸出如下:

http://myservice/odata/Data?&format=application%2Fjson&$$filter=year(Date)+lt+2012 

注意旁邊的第二個和完全不必要的& param ...

有什麼想法?

+0

其實和ngResource的版本沒有關係。研究AngularJS中的變化以及它們如何處理xhr。 – Knostradamus 2015-02-06 18:04:00

回答

1

在將我的odata請求轉換爲正確的格式後,我發現發生了什麼後,我意識到我已經添加了一個預製轉換的第三方angular-odata模塊。較新的angularjs $ http已經可以處理這種轉換。衛生署!