2016-03-21 20 views
0

Aşağıdaki param: Aşağıdaki listede nasıl param olabilirim? BenTypeError: undefined özelliği için 'search' özelliği okunamaz. Location.search()

TypeError: Cannot read property 'search' of undefined 
    at Object.async (abcd.html?kId=pqr) 

url, aşağıdaki hatayı alıyorum:

http://localhost:8080/.........../abcd.html?kId=pqr 

Kodu:

var app = angular.module('angModule', [], function($locationProvider) { 
    $locationProvider.html5Mode(true); 
}); 
app.factory(
    'myService', 
    function($http,$location) { 
     return { 
      async : function() { 
       return $http 
        .get('http://localhost:8080/...........,,,,./...',{params:{"kId": $location.search()['kId'] }}); 
       } 
      }; 
     }); 
+0

Paylaşılan kodda '$ location.search()' göremiyorum ..? –

cevap

1

Ben $location tanımsız, bu yüzden doğru hizmeti tanımlayan değil düşünüyorum. https://docs.angularjs.org/guide/services yılında

batchModule.factory('myService', ['$interval', '$log', function($interval, $log) { 

Bkz "Bağımlılıklar" bölümüne: Sen gösterimini kullanmak zorunda. Bu durumda:

+0

Aslında o, notasyonu kullanması gerekmiyor. Bu üretim minification sorunlarını çözmeli. Herkesin bildiği üzere, yapım aşamasında bunu yapmak için bir görev kullanıyor. –

+0

Bu notasyona yalnızca kodunuzu küçültmeniz durumunda ihtiyaç duyulur. Açısal, size adlandırılmış parametreler (sadece enjekte edilebilen şeyleri kontrolörler, servisler vb. Için) sağlayarak enjeksiyonunun nasıl çalıştığını gösterir. Bununla birlikte, kodunuzu küçültmek tüm işlev argümanlarınızı yeniden adlandırır ve böylece tüm bağımlılıklarınızı bozar. dizi onları aslına sadık kalmanızı sağlar, böylece küçültme işleri bozmaz. – ste2425

İlgili konular