AngularJS - Notepad Application: Building Your First Web App
Привет,野心勃勃的程序设计师们!我很高兴能引导你们踏上使用AngularJS创建的第一个网页应用的激动人心的旅程。作为一个教授编程超过十年的人,我可以向您保证,在本教程结束时,您将拥有一个功能性的记事本应用程序,并对AngularJS的基础知识有扎实的理解。那么,让我们开始吧!
What is AngularJS?
Прежде чем мы начнем программировать, давайте поймем, что такое AngularJS. Представьте, что вы строите дом. AngularJS - это как каркас, который предоставляет структуру и инструменты, чтобы упростить и лучше организовать процесс строительства вашего дома. Это JavaScript-фреймворк, который помогает нам создавать динамические веб-приложения с меньшими усилиями.
Setting Up Our Development Environment
Сначала нам нужно настроить наше рабочее пространство. Не волнуйтесь; это проще, чем настраивать настоящий рабочій стол!
- Откройте ваш любимый текстовый редактор (я рекомендую Visual Studio Code для начинающих).
- Создайте новую папку под названием "AngularJS-Notepad".
- В этой папке создайте три файла:
- index.html
- app.js
- style.css
Creating the HTML Structure
Давайте начнем с файла index.html
. Это как чертеж нашего дома.
<!DOCTYPE html>
<html ng-app="notepadApp">
<head>
<title>AngularJS Notepad</title>
<link rel="stylesheet" href="style.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="NotepadController">
<h1>My Notepad</h1>
<textarea ng-model="noteContent"></textarea>
<p>Character count: {{noteContent.length}}</p>
</body>
</html>
Давайте разберем это:
-
ng-app="notepadApp"
: Это говорит AngularJS, что это корень нашего приложения. -
ng-controller="NotepadController"
: Это указывает, какой контроллер должен управлять этой частью страницы. -
ng-model="noteContent"
: Это связывает textarea с переменнойnoteContent
в нашем контроллере. -
{{noteContent.length}}
: Это выражение, которое отображает длину нашегоernote.
Styling Our Application
Теперь давайте добавим немного базового стиля, чтобы наш блокнот выглядел хорошо. В вашем файле style.css
, добавьте:
body {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 0 auto;
padding: 20px;
}
textarea {
width: 100%;
height: 200px;
margin-bottom: 10px;
}
h1 {
color: #333;
}
Этот CSS centrирует是我们的内容, устанавливает nice шрифт и стилизует наш textarea и заголовок.
Creating the AngularJS Application
Теперь для захватывающей части - давайте оживим наш блокнот с помощью AngularJS! В вашем файле app.js
:
var app = angular.module('notepadApp', []);
app.controller('NotepadController', function($scope) {
$scope.noteContent = '';
});
Давайте разберем это:
- Мы создаем AngularJS модуль под названием 'notepadApp'.
- Мы определяем контроллер под названием 'NotepadController'.
- Внутри контроллера мы�始化
noteContent
как пустую строку.
Adding More Features
Теперь у нас есть базовый блокнот, давайте добавим несколько функций, чтобы он стал полезнее!
1. Save and Load Functionality
Давайте добавим кнопки для сохранения и загрузки наших записок. Обновите ваш HTML:
<body ng-controller="NotepadController">
<h1>My Notepad</h1>
<textarea ng-model="noteContent"></textarea>
<p>Character count: {{noteContent.length}}</p>
<button ng-click="saveNote()">Save Note</button>
<button ng-click="loadNote()">Load Note</button>
</body>
И обновите ваш app.js
:
app.controller('NotepadController', function($scope) {
$scope.noteContent = '';
$scope.saveNote = function() {
localStorage.setItem('savedNote', $scope.noteContent);
alert('Note saved!');
};
$scope.loadNote = function() {
$scope.noteContent = localStorage.getItem('savedNote') || '';
alert('Note loaded!');
};
});
Здесь мы используем localStorage
, чтобы сохранить и загрузить нашу заметку. Представьте это как маленький блокнот, где ваш браузер может записать информацию, чтобы запомнить её позже.
2. Word Count Feature
Давайте добавим функцию подсчета слов. Обновите ваш HTML:
<p>Character count: {{noteContent.length}} | Word count: {{wordCount()}}</p>
И добавьте эту функцию к вашему контроллеру в app.js
:
$scope.wordCount = function() {
return $scope.noteContent.split(/\s+/).filter(function(n) { return n != '' }).length;
};
Эта функция разделяет содержимое заметки по пробелам и подсчитывает несущие элементы, давая нам количество слов.
Putting It All Together
Вот таблица, резюмирующая основные директивы и выражения AngularJS, которые мы использовали:
Directive/Expression | Purpose |
---|---|
ng-app | Defines the root element of an AngularJS application |
ng-controller | Specifies which controller to use for the HTML element |
ng-model | Binds the value of HTML controls to application data |
ng-click | Specifies an AngularJS expression to evaluate when an element is clicked |
{{expression}} | Outputs the value of an expression |
Поздравляю! Вы только что создали свое первое приложение на AngularJS. Мы рассмотрели основы настройки AngularJS приложения, использования контроллеров, работы с моделями и даже локального хранения данных.
Помните, что обучение кодированию похоже на изучение нового языка. Это требует практики, терпения и persistenции. Не отчаивайтесь, если что-то не сразу срабатывает - это все часть процесса обучения. Продолжайте экспериментировать с вашим приложением для блокнота, пытайтесь добавлять новые функции и, самое главное, получайте удовольствие!
За годы моего преподавания я видел countless студентов, которые перешли от complete beginners до искусных разработчиков. Вы находитесь на том же захватывающем пути сейчас. Продолжайте программировать, продолжайте учиться, и antes de que te das cuenta, вы будете легко создавать сложные веб-приложения!
Credits: Image by storyset