2017-11-16 327 views
8

Uygulamanın geri kalanı önce en azından denetleyicilerden önce bazı yapılandırma bilgilerini almak için hızlı bir http isteği yapması gereken bir açısal uygulamaya sahibim. $ UrlRouterProvider'ı kullanarak baktım, ancak uygulamanın nasıl yapılmasını beklediğimi anlamadım. Ben gerekenler

bitirilmesi, http: istek yapmak ve daha sonra başlatabilir/html kodu js kodu yerine ng-app aracılığıyla uygulamanıza önyükleme ayrı js dosyası oluşturabilirsiniz

$http({method: 'GET', url: '/config'}).then(function(res) { 
     configProvider.setConfig(res.data.config); 
} 
+0

için

.state('app', { abstract: true, url:'/', views: { "content": { templateUrl: "myurl.html" }, resolve { myVar: ['$http', 'myService', function($http, myService) { return $http({method: 'GET', url:'url'}) .then(function(res) { //do stuff }) 

Ne tabanı, soyut durumunu ve çözümlemek buna o isteği oluşturma hakkında? Bu şekilde, kontrolörler –

+0

'dan önce sahip olacaksınız. Örneğin $ stateProvider kullanarak? Böyle bir şey denedim: .state ('app', {abstract: true, url: '/', görüntüleme sayısı: {"content": {templateUrl: "myurl.html"}, resol {myVar: ['$ http ',' myService ', function ($ http, myService) {return $ http ({method:' GET ', url:' url '}). sonra (function (res) {// do şeyler}) Not Bu – Slagathor

+0

Yep ile çok şans, demek istediğim tam olarak bu. Benim için çalışıyor, bu yüzden sizin için neden çalışmadığından emin değilim, ama cevabı kontrol edin - –

cevap

1

. Ben yardımcı olur umarım

(function() { 
    var application, bootstrapApplication, fetchData; 
    application = angular.module('app'); 
    fetchData = function() { 
    var $http, initInjector; 
    initInjector = angular.injector(['ng']); 
    $http = initInjector.get('$http'); 
    $http.get('<url>'); 
    }; 
    bootstrapApplication = function() { 
    angular.element(document).ready(function() { 
     angular.bootstrap(document, ['app']); 
    }); 
    }; 
    fetchData().then(bootstrapApplication); 
})(); 

:

aşağıdaki kodu bakın.

+0

umut verici görünüyor belki de "daha temiz" bir yol istiyorum Ben çerçeve – Slagathor

+0

çerçevesinde gizlenmiş neyin yardımı ile app.js aracılığıyla yapmak için burada biraz kod ipucu ile yaklaşımı burada açıklanmıştır ve bu uygulama sırasında kesinlikle çok geliştirilebilir.Bu için sorun/kod daha derin bir anlayış gerekir. :) – Harpreet

1

Çöz durumuna değil, görünüm

değişiklik üzerinde beyan edilmelidir

.state('app', { 
    abstract: true, 
    url:'/', 
    views: { 
     "content": { 
      templateUrl: "myurl.html" 
     } 
    }, 
    resolve { 
      myVar: ['$http', 'myService', function($http, myService) { 
        return $http({method: 'GET', url:'url'}) 
          .then(function(res) { //do stuff })...