2016-04-02 18 views
0

Angularjs'de yeniyim ve projem için en iyi yaklaşım konusunda biraz yardıma ihtiyacım var.
Kodumun çoğu işe yarıyor, ancak kodumun her zaman beklendiği gibi çalışmadığı bazı sorunlarla karşılaştım.
Muhtemelen webservices ile bazı yarış koşullarından dolayı.
Web hizmeti, angularjs uygulamasından tamamen ayrılmış olduğundan, tohum çekmenin hiçbir yolu yoktur.Angularjs, RESTful API, birden fazla hizmeti önyükleme

Yönlendirmeyi ve istekleri için $ http'u işlemek için ui.router ile açısal 1.5 kullanıyorum.

  1. Kullanıcılarımın sayfasını/uygulamanızı/kullanıcıları açtığımda bir $ http.get yapmak için data-ng-init kullanıyorum ve sonra bir tablo üzerinde ng-yineleme. Bu çalışır, ancak sistem veriyi alırken bu küçük boşluğa sahibim.
  2. Ayrıntıları tıkladığımda/app/users /: userId dosyasına yönlendiriyorum. Ancak, veri json verilerini burada birden fazla kaynaktan gelen sayfa yüküne getirmem gerekiyor ve zaman zaman bu adım verileri yayınlamıyor. Verilerin geri çağrıldığında bir console.log ile döndüğünü görebildiğim için bir tür yarış durumu gibi görünüyor. Konsolda hata yok ama.

Henüz gerçekten iyi bir şey bulamadan birkaç çözüm denedim. Angularjs için yeni olduğum gibi basit bir şey kaçırdım ve doğru yönde bir itme ihtiyacım var.

getiriliyor, bu gibi pek çok basit şeyler .: yapılır

ApiService.whoami(). 
    then(
     function successCallback(response){ 
      $scope.user = response.data.data; 
      console.log(response); 

     }, 
     function errorCallback(response) { 
      SweetAlert.swal({ 
       title: "Data error", 
       text: response.data.error.message, 
       type: "warning", 
       confirmButtonColor: "#DD6B55", 
      }); 
     } 
    ); 

cevap

0

içinde bir çok veriyi

then(
    function successCallback(response){ 
    $timeout(function() { 
     $scope.user = response.data.data; 
     console.log(response); 
    }, 1000); 
    }, 

https://docs.angularjs.org/api/ng/service/ getirmek için zaman vermek geri arama geciktirmek için $ zaman aşımı kullanarak deneyebilirsiniz $ timeout

+0

Sorun başka bir yol gibi görünüyor. Örneğin. select2 kullanan bir seçim kutusu var. Verilerimi/kullanıcılara yükler ve $ rootState'a kaydeder ve ardından/users /: userID sayfasına geçiş yaparsa, bu da iyidir. Sayfa yenilendiğinde veri yenilemediyse ve veriler mevcut değilse, veriler alındığında bile çalışma yapılmaz. – cboxdk

+0

Denetleyicilerinizin kodunu vb gösterebilir misiniz? –

İlgili konular