2016-12-21 11 views
0

私はangularJSアプリケーションにいくつかのスライダがあります。私が達成しようとするのは、ユーザーが選択ドロップダウンでオプションを変更したとき、スライダーはRestAPIからの新しい値で更新を取得する必要があります。AngularJSのrzModuleスライダで強制更新

この例は1つのスライダですが、残りのスライダは同じです。

コントローラ

myCtrl.ageSlider = { 
      value: 17, 
      options: { 
       showSelectionBar: true, 
       ceil: 38, 
       hideLimitLabels: true, 
       floor: 17, 
       onChange: myCtrl.getResults, 
       getPointerColor: function(value) { 
        return '#FFCF00' 
       }, 
       getSelectionBarColor: function(value) { 
        return '#FFCF00' 
       } 
      } 
     }; 

に選択

myCtrl.updateSliders = function() { 

     //other sliders here that don't need a call on API 

     StaffServices.getMedic(myCtrl.selected.id, 
     function(response) { 
     myCtrl.ageSlider.value = parseInt(response.data.age); 
     myCtrl.getResults(); 
     }, 
     function(response) { 
     console.log('Something went wrong on medic process'); 
     }); 

    } 

とサービス

myCtrl.getResults = function() { 
     myCtrl.results = myService.myUpdatesCalc(passSomeValues); 
} 
を呼び出す getResults()機能のNG-変化に呼ばれているコントローラ上の更新機能をスライダーを作成します

ユーザーからスライダを手動で変更するときonChangeはgetResults関数を起動します。これに時間を費やして理由を見つけることができません。どんな助け?

編集:これは

service.getMedic = function(id, onSuccess, onError) { 
      $http.get(API_Base + 'api/staff/medic?id='+id, 
      { 
       headers: { 'Authorization': 'Bearer '+$cookies.get('token')} 
      }). 
      then(function(response) { 

       onSuccess(response); 

      }, function(response) { 

       onError(response); 

      }); 
     } 

答えて

0

角度$httpリターン約束、ひいては自分の値が更新されていない任意の混乱を避けるために、サービスgetMedicです。約束事を処理し、コールバック関数で更新する必要があります:

myCtrl.getResults = function() { 
    myService.myUpdatesCalc(passSomeValues) //this is your REST API, will return a promise 
    .then(function(response) { //this is the callback function to handle the successful ajax 
    myCtrl.results = response.data; //update your results here! 
    }, function(error) { //this is the callback function to handle the failed ajax 
    console.log('error') 
    }) 
} 
+0

私の質問が更新されました。ご覧のとおり、私はあなたがサービスファイルで説明したことを行います。 – Tasos

+0

'myUpdatesCalc'は約束を返していない、別名$ httpはコールしませんか? – CozyAzure

+0

いいえ。これは、数学計算がいくつかある単純なJS関数です。いいえ、$ – Tasos

関連する問題