2016-05-13 56 views
1

我在我的html中有一个div。在div里面,我正在调用一个控制器。我需要将一些数据从div传递给控制器​​。我没有像输入字段/按钮等任何其他html元素div。将数据从html div标签传递到AngularJS中的控制器

<div ng-controller="writeLoadTimeController"> 
    <!--adding this controller to send the page load time to server--> 
    $scope.loadTime=$window.performance.timing.domContentLoadedEventEnd-$window.performance.timing.navigationStart; 

    </div> 

如何将loadTime字段的值传递给控制器​​。

+0

当你想传递数据,对任何特定事件?页面加载完成后的 –

+0

。 – deadpool

回答

0

你可以试试:

<div id="loadTime" ng-controller="writeLoadTimeController" ng-load="someFunction()"> 


</div> 

和控制器:

$scope.someFunction = function(){ 
     $scope.loadTime=$window.performance.timing.domContentLoadedEventEnd-$window.performance.timing.navigationStart; 
    } 
0

1:可以onload事件到div添加和调用一个函数,将计算加载时为您服务。它应该是这样的。

你HTML:

<div id="loadTime" ng-controller="writeLoadTimeController"> 
</div> 

和控制器:

app.controller("writeLoadTimeController", function($scope){ 
    $scope.loadTime =""; 
    document.getElementById("loadTime").addEventListener('onload', onloadHandler); 
    function onloadHandler(){ 
     $scope.loadTime=$window.performance.timing.domContentLoadedEventEnd-$window.performance.timing.navigationStart; 
    } 
}); 

然后你就可以在HTML中使用{{loadTime}}

2:可避免增加onload事件侦听器,并执行以下操作:

你HTML:

<div id="loadTime" ng-controller="writeLoadTimeController"> 
</div> 

和控制器:

app.controller("writeLoadTimeController", function($scope){ 
    $scope.loadTime =""; 

    $scope.loadTimeCalculator = function(){ 
     $scope.loadTime=$window.performance.timing.domContentLoadedEventEnd-$window.performance.timing.navigationStart; 
    } 

    $scope.loadTimeCalculator(); 
}); 

它将调用loadTimeCalculator()功能时调用writeLoadTimeController

希望这会帮助你:)

+1

我已经尝试了这种方法,但在可能的情况下,我在两个html页面中调用writeLoadTimeController,并且对于它们两个,loadTime始终给出相同的值。所以,我猜是因为我正在执行控制器内部的表达式,loadTime是控制器在加载时取的,而不是view/html。 这就是我想避免将此语句放在控制器中,并希望将其添加到每个html页面中的原因。 – deadpool

+0

控制器只被调用一次吗?我的意思是当你打开其他页面时,控制器不会被第二次调用? – Mary

+0

当我打开第二页时,它被再次调用,因为在第二页中我也调用同一个控制器。 我已经把警报消息,交叉验证它。 另外,即使我创建两个不同的控制器,每个页面具有相同的代码,结果也是一样的。 – deadpool

相关问题