Angular js でストップウォッチを作ったメモ
Angular js でストップウォッチを作ったメモ:
ユーザ側に経過時間を見せながらログを取るアプリケーションを作る必要があったので,ここにメモ
表示用のhtml
ng-controllerでコントロールの範囲を決めて,その中のng-clickに対してイベントリスナーをJS側で書いていく
コードはこんな感じ
注意するところはcontollerの中の引数を\$scopeだけではなく\$intervalも入れること
割とそのエラーで今後ハマりそう。。
Angular jsを使ってストップウォッチを作る
ユーザ側に経過時間を見せながらログを取るアプリケーションを作る必要があったので,ここにメモ表示用のhtml
index.html
<!DOCTYPE html> <html ng-app="app"> <head> <!-- import Library | Framework --> <title>ストップウォッチ</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.5/angular.min.js"></script> <script src="./Time_control.js"></script> </head> <body> <div ng-contoller="time_controller"> <!-- 表示用 --> <p>{{time_status}}</p> <div> <input type="button" value="start" ng-click="start()" ng-class="{disabled :start_status}"> </div> <div> <input type="button" value="end" ng-click="stop()" ng-class="{disabled :stop_status}"> </div> </div> </body>
Time_control.js
var app = angular.module("app",[]); app.controller("time_control",function($scope,$interval){ $scope.time_status = "00:00"; // 外のメソッドからアクセスしたいため,グローバル変数へ time = 0; // startのボタンのみ有効 $scope.start_status = ""; $scope.stop_status = "disable"; // スタートを押した際にカウントを始める $scope.start = function(){ // スタートボタンは無効化する $scope.start_status = "disabled"; $scope.stop_status = ""; // 1秒間に1回処理を呼び出すようにする timer = $interval(function(){ time++; var sec = parseInt((time % 60) / 10) == 0 ? "0" + (time % 60).toString() : (time % 60).toString(); var min = parseInt(time / 600) == 0 ? "0" + parseInt(time/60).toString() : parseInt(time/60).toString(); $scope.time_status = min + ":" + sec; },1000); } // ストップを押したら時間を止めるようにする $scope.stop = function(){ $interval.cancel(timer); $scope.start_status = ""; $scope.stop_status = "disabled"; }; })
注意するところはcontollerの中の引数を\$scopeだけではなく\$intervalも入れること
割とそのエラーで今後ハマりそう。。
コメント
コメントを投稿