2017-03-02 41 views
9

Tüm içerik sayfamızın belirli bir başlığı var, X-Foo. ng-view içeriği değiştiğinde, yeni sayfanın X-Foo başlığını farklı bir öğede görüntülemek istiyoruz. İçerik her değiştiğinde bu değeri nasıl alabiliriz?ng görünümünde değişiklik olduğunda üstbilgiler alın

DÜZENLEME: Bu durum açıkça belli olmadığı için, üstbilginin yanıtı isteğinde değil, beklendiği bekleniyor.

+0

içerik değişiklikleri veya rota değişiklikleri kullanarak tüm HTTP aramalar için nasıl işlendiğini için tek bir yerde davranışını tanımlamak için harika bir yoldur? 'ngView', bağlayabileceğiniz bir' $ viewContentLoaded' olayına sahiptir. Alternatif olarak, rotanın ne zaman değiştiğini öğrenmek istiyorsanız '$ routeChangeSuccess' etkinliği var. – Ankh

+0

@Ankh Ya biri iyidir. Bununla birlikte, güzergahın değiştiği noktada, yeni verilerin henüz gelmediğini, dolayısıyla başlıkların nereden alınacağına dair bir yanıt bulunmadığını varsayıyorum. – user1207177

cevap

0

Denetleyicideki başlıklara $ http ile erişebilir misiniz? Bunu test etmek için mevcut başlıkların değişebileceği bir şeyim yok. Bu işe yaramazsa

controller('SampleCtrl', function($http, $scope) { 
    // Add headers from $http 
    $scope.http = $http.defaults.headers.common; 
}); 

Alternatif olarak, http interceptors kullanarak bakmak isteyebilirsiniz.

.config(function($routeProvider, $locationProvider, $httpProvider) { 

    $httpProvider.interceptors.push(function($q) { 
     return { 
      'response': function(response) { 
       // do something on success 
       console.log(response); 
       return response; 
      } 
     }; 
    }); 
} 
4

Bunun için bir httpInterceptor kullanabilirsiniz. HTTP önleyicilerin bir istek veya yanıt $ http hizmeti

app.config(function ($httpProvider) { 
    $httpProvider.interceptors.push('httpInterceptor'); 
}).factory('httpInterceptor', function (liveInterviewConfiguration) { 
    return { 
     request : function (request) { 
      console.info("Your request headers are"); 
      console.info(request.headers); 
      return request; 
     }, 
     requestError : function (error) { 
      return error; 
     }, 
     response : function (response) { 
      return response; 
     }, 
     responseError : function (error) { 
      return error; 
     } 
    }; 
});