Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度指令不';t显示在视图中,但显示在控制台中_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript 角度指令不';t显示在视图中,但显示在控制台中

Javascript 角度指令不';t显示在视图中,但显示在控制台中,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我有如下代码,代码是一个角度指令。代码用于使用坐标计算两个位置之间的距离,我的问题是指令结果(scope.hasil=dist)不会出现在视图中,而是出现在控制台中(console.log(dist))。我应该怎么做才能使结果显示在视图中?谢谢:) 指令 dir.directive('distance', function () { var calcRoute = function(ori,dest,cb) { var dist; var directionsDi

我有如下代码,代码是一个角度指令。代码用于使用坐标计算两个位置之间的距离,我的问题是指令结果(
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>

用于在更改属性后刷新视图:

scope.$apply(function () {
    scope.hasil = dist;
});
调用
链接
函数时,DOM实际上已经被填充。因此,默认情况下,更改
范围
值不会重新呈现DOM。使用
$apply
将触发另一个
$digest
循环并更新视图。

用于在更改属性后刷新视图:

scope.$apply(function () {
    scope.hasil = dist;
});
调用
链接
函数时,DOM实际上已经被填充。因此,默认情况下,更改
范围
值不会重新呈现DOM。使用
$apply
将触发另一个
$digest
循环并更新视图。

用于在更改属性后刷新视图:

scope.$apply(function () {
    scope.hasil = dist;
});
调用
链接
函数时,DOM实际上已经被填充。因此,默认情况下,更改
范围
值不会重新呈现DOM。使用
$apply
将触发另一个
$digest
循环并更新视图。

用于在更改属性后刷新视图:

scope.$apply(function () {
    scope.hasil = dist;
});

调用
链接
函数时,DOM实际上已经被填充。因此,默认情况下,更改
范围
值不会重新呈现DOM。使用
$apply
将触发另一个
$digest
循环并更新视图。

@joy的答案可能是最正确的。另外,我的团队利用自动运行$apply的技巧是使用$timeout,如下所示:

$timeout(function() {
    calcRoute(ori,dest, function (err, dist) {
            if (!err) {
              scope.hasil = dist;
              console.log(dist);
            }else{
                scope.hasil = err;
            }
    });
});

@乔伊的答案可能是最正确的。另外,我的团队利用自动运行$apply的技巧是使用$timeout,如下所示:

$timeout(function() {
    calcRoute(ori,dest, function (err, dist) {
            if (!err) {
              scope.hasil = dist;
              console.log(dist);
            }else{
                scope.hasil = err;
            }
    });
});

@乔伊的答案可能是最正确的。另外,我的团队利用自动运行$apply的技巧是使用$timeout,如下所示:

$timeout(function() {
    calcRoute(ori,dest, function (err, dist) {
            if (!err) {
              scope.hasil = dist;
              console.log(dist);
            }else{
                scope.hasil = err;
            }
    });
});

@乔伊的答案可能是最正确的。另外,我的团队利用自动运行$apply的技巧是使用$timeout,如下所示:

$timeout(function() {
    calcRoute(ori,dest, function (err, dist) {
            if (!err) {
              scope.hasil = dist;
              console.log(dist);
            }else{
                scope.hasil = err;
            }
    });
});


您是否尝试过用
作用域包装
calcRoute
回调。$apply()
@Dario谢谢。。它解决了我的问题。:)您是否尝试过用
作用域包装
calcRoute
回调。$apply()
@Dario谢谢。。它解决了我的问题。:)您是否尝试过用
作用域包装
calcRoute
回调。$apply()
@Dario谢谢。。它解决了我的问题。:)您是否尝试过用
作用域包装
calcRoute
回调。$apply()
@Dario谢谢。。它解决了我的问题。:)谢谢,它解决了我的问题,就像达里奥在上面说的那样……谢谢大家……)谢谢,它解决了我的问题,就像达里奥在上面说的那样……谢谢大家……)谢谢,它解决了我的问题,就像达里奥在上面说的那样……谢谢大家……)谢谢,它解决了我的问题,就像达里奥在上面说的那样……谢谢大家……)对因为
$timeout
将在内部调用
$apply
。与
$interval
相同,
ng单击
等。我使用@joy answer包装
scope.hasil=dist具有
作用域。$apply
且有效:)对因为
$timeout
将在内部调用
$apply
。与
$interval
相同,
ng单击
等。我使用@joy answer包装
scope.hasil=dist具有
作用域。$apply
且有效:)对因为
$timeout
将在内部调用
$apply
。与
$interval
相同,
ng单击
等。我使用@joy answer包装
scope.hasil=dist具有
作用域。$apply
且有效:)对因为
$timeout
将在内部调用
$apply
。与
$interval
相同,
ng单击
等。我使用@joy answer包装
scope.hasil=dist具有
作用域。$apply
且有效:)