2016-03-02 24 views
4

我試圖注入$httpParamSerializer用於templateUrl但我有一些問題。沒有任何有關如何使用$httpParamSerializer的良好文檔和示例。

示例代碼:

angular.module('myApp', ['ngRoute']).config(
    function($routeProvider, $locationProvider, $httpProvider) { 
    $routeProvider 
     .when('/data/dashboard', { 
      templateUrl: function(params) { 
      //NEED TO USE IT HERE 
      } 
     }) 
}) 

的事情,沒有工作,把它像這樣:

function($routeProvider, $locationProvider, $httpProvider,$httpParamSerializer) {

另外在moduler,就像這樣:

angular.module('myApp', ['ngRoute', '$httpParamSerializer']).config(

任何洞察爲什麼這不起作用ing會有所幫助。

+1

我創建JS小提琴演奏與它周圍:http://jsfiddle.net/kh9oeq1y/15/ – Dimitry

回答

3

由於你在配置中,你需要從提供者本身獲取它。也就是說,注入的供應商,並呼籲$get

angular.module('myApp', ['ngRoute']).config(
    function($routeProvider, $locationProvider, $httpProvider, $httpParamSerializerProvider) { 

    // get the serializer from the provider 
    var paramSerializer = $httpParamSerializerProvider.$get(); 
    console.log(paramSerializer({a:1})); // test it 

    $routeProvider.when('/', { 
     templateUrl: function(params) { 
     // you can use paramSerializer(here 
     } 
    }); 
}); 

工作你的jsfiddle的版本:http://jsfiddle.net/kh9oeq1y/16/

-1

This forum表明這是您的角度版本的問題。檢查你使用的是至少1.4.0。

+0

我我正在使用1.4.8。已經檢查版本。這裏是JS Fidlle玩弄它,http://jsfiddle.net/kh9oeq1y/15/ – Dimitry