AngularJS - 定時器應用程式
Hello, future programmers! Today, we're going to embark on an exciting journey to create a timer application using AngularJS. Don't worry if you've never written a line of code before – I'll be your friendly guide through this adventure, explaining everything step by step. So, let's roll up our sleeves and dive in!
What is AngularJS?
Before we start building our timer, let's take a moment to understand what AngularJS is. Imagine you're building a house. AngularJS is like a magical toolbox that makes it easier to construct the walls, roof, and everything in between. It's a JavaScript framework that helps us create dynamic web applications with less effort.
Setting Up Our Project
Step 1: Including AngularJS
First things first, we need to include AngularJS in our project. It's like inviting a super-smart friend to help us with our homework. We'll do this by adding a single line of code to our HTML file:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
This line tells our web page to load AngularJS from Google's servers. It's like opening the magical toolbox we talked about earlier.
Step 2: Creating the HTML Structure
Now, let's create the basic structure of our timer application. Think of this as sketching out the blueprint of our house:
<!DOCTYPE html>
<html ng-app="timerApp">
<head>
<title>AngularJS Timer</title>
</head>
<body ng-controller="TimerController">
<h1>AngularJS Timer</h1>
<p>Time: {{time}}</p>
<button ng-click="startTimer()">Start</button>
<button ng-click="stopTimer()">Stop</button>
<button ng-click="resetTimer()">Reset</button>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script src="app.js"></script>
</body>
</html>
Let's break this down:
-
ng-app="timerApp"
: This tells AngularJS that our entire HTML document is an Angular application named "timerApp". -
ng-controller="TimerController"
: This applies a controller (which we'll create soon) to our<body>
element. -
{{time}}
: This is where our timer will display the current time. - The buttons have
ng-click
attributes, which will trigger functions when clicked.
Creating the AngularJS Application
Step 3: Setting Up the JavaScript
Now, let's create our app.js
file. This is where the magic happens!
var app = angular.module('timerApp', []);
app.controller('TimerController', function($scope, $interval) {
$scope.time = 0;
var timer;
$scope.startTimer = function() {
if (!timer) {
timer = $interval(function() {
$scope.time++;
}, 1000);
}
};
$scope.stopTimer = function() {
if (timer) {
$interval.cancel(timer);
timer = null;
}
};
$scope.resetTimer = function() {
$scope.stopTimer();
$scope.time = 0;
};
});
Wow, that's a lot! Let's break it down step by step:
-
var app = angular.module('timerApp', []);
: This creates our AngularJS application. -
app.controller('TimerController', function($scope, $interval) { ... });
: This defines our controller. Think of it as the brain of our application. -
$scope.time = 0;
: This initializes our timer to 0. -
The
startTimer
,stopTimer
, andresetTimer
functions:
-
startTimer
uses$interval
to increase$scope.time
every second. -
stopTimer
cancels the interval when we want to pause. -
resetTimer
stops the timer and sets the time back to 0.
How It All Works Together
When you open the HTML file in your browser, AngularJS springs into action. It sees the ng-app
and ng-controller
directives and knows to use our JavaScript code to control the page.
The {{time}}
in our HTML is automatically updated whenever $scope.time
changes in our JavaScript. This is called two-way data binding, and it's one of the coolest features of AngularJS!
When you click a button, the corresponding function in our controller is called, updating the timer as needed.
Advanced Concepts
Now that we've got the basics down, let's look at some more advanced concepts we've used:
Dependency Injection
You might have noticed $scope
and $interval
in our controller function. These are dependencies that AngularJS "injects" into our controller. It's like the framework is handing us special tools to use in our code.
Services
$interval
is an AngularJS service. Services are reusable pieces of code that perform specific tasks. In this case, $interval
helps us repeatedly run a function at specified intervals.
Methods Table
Here's a table of the methods we've used in our timer application:
Method | Description |
---|---|
startTimer() | Begins the timer, increasing the time every second |
stopTimer() | Pauses the timer |
resetTimer() | Stops the timer and sets the time back to zero |
Conclusion
Congratulations! You've just built your first AngularJS application. We've covered a lot of ground, from basic HTML structure to AngularJS controllers and services. Remember, learning to code is like learning a new language – it takes practice and patience. Don't worry if everything doesn't click right away. Keep experimenting, and soon you'll be creating amazing web applications!
As we wrap up, I'm reminded of my first programming class where a student asked, "When will I know I'm a real programmer?" I smiled and replied, "The moment you realize that Google is every programmer's best friend!" So don't be afraid to search for answers, experiment with the code, and most importantly, have fun while learning!
Happy coding, future AngularJS masters!
Credits: Image by storyset