У меня есть код, как показано ниже, код является угловой директивой. Код используется для вычисления расстояния между двумя местами с помощью координат, моя проблема - результат директивы (scope.hasil = dist
) не отображается в представлении, а отображается в консоли (console.log(dist)
). Что я должен делать, чтобы результаты могли отображаться в поле зрения? спасибо :)угловая директива не отображается в представлении, но появляется на консоли
директива
dir.directive('distance', function() {
var calcRoute = function(ori,dest,cb) {
var dist;
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
directionsDisplay = new google.maps.DirectionsRenderer();
var request = {
origin:ori,
destination:dest,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
cb(null, response.routes[0].legs[0].distance.value/1000);
}
else {
cb("error");
}
});
};
return{
restrict:"E",
scope: true,
template:"{{hasil}} km",
link: function(scope, elm, attrs) {
var ori = attrs.ori;
var dest = attrs.dest;
calcRoute(ori,dest, function (err, dist) {
if (!err) {
scope.hasil = dist;
console.log(dist);
}else{
scope.hasil = err;
}
});
}
};
});
вид
<distance ori="-7.048443, 110.441022" dest="-7.048264, 110.440388"></distance>
вы пытались обернуть 'calcRoute' обратного вызова с' рамки $ применяются() ' – Dario
@. Дарио благодарю вас .. решил мою проблему .. :)) – Sandhi