2016-05-13 7 views
1

私は自分のHTMLにdivを持っています。 divの中で私はコントローラを呼び出しています。私は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> 

をdiv要素内の他のHTML要素を持っていません。

+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:あなたはdiv要素にonloadイベントイベントを追加し、あなたのためのロード時を計算する関数を呼び出すことができます。それはこのようにすべきです。

は、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

私はこのアプローチを試みましたが、2つのhtmlページでwriteLoadTimeControllerを呼び出すことがありますが、両方ともloadTimeは常に同じ値を与えています。だから、私はコントローラ内の式を実行しているので、loadTimeはview/htmlの代わりにコントローラがロード中に取ったものだと思います。 これは私がこの文をコントローラに入れないようにしたいので、各htmlページにそれを追加したかったからです。 – deadpool

+0

コントローラーは1回だけ呼び出されますか?私はあなたが別のページコントローラを開くと、2回目に呼ばれていないことを意味しますか? – Mary

+0

2ページ目も同じコントローラを呼び出すので、2ページ目を開くと再び呼び出されます。 私はアラートメッセージを入れて、それを検証します。 また、2つの異なるコントローラを作成しても、同じコードを持つページごとに1つずつ、結果は同じになります。 – deadpool

関連する問題