我在 angularJS 应用程序中有几个滑块。我试图实现的是,当用户更改选择下拉菜单上的选项时,滑块应该使用来自 RestAPI 的新值进行更新。
此示例适用于其中一个滑块,但其余部分相同。
在控制器上创建滑块
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'
}
}
};
在选择的 ng-change 上调用的控制器上的更新功能
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');
});
}
getResults()以及调用服务的函数
myCtrl.getResults = function() {
myCtrl.results = myService.myUpdatesCalc(passSomeValues);
}
当我从用户界面手动更改滑块时,onChange 会触发该getResults功能。在这上面花费了几个小时,却找不到原因。有什么帮助吗?
编辑:这是getMedic避免任何混淆的服务
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);
});
}