AngularJS - Приложение в线和
Введение
Здравствуйте, будущие мастера AngularJS! Я рад быть вашим проводником в увлекательное путешествие в мир вилочных приложений AngularJS. Как кто-то, кто преподавал программирование много лет (давайте просто скажем, что я помню время, когда диски действительно были гибкими), я могу заверить вас, что к концу этого руководства вы будете уверенно создавать свое первое вилочное приложение AngularJS.

Что такое вилочное приложение?
Прежде чем мы погрузимся в код, давайте поймем, что мы подразумеваем под "вилочным приложением". Представьте, что вы на банкете (присоединяйтесь ко мне, я обещаю, что эта аналогия имеет смысл). Вилочное приложение похоже на то, что у вас все любимые блюда на одной тарелке - все, что вам нужно, находится прямо здесь, готово к использованию. В терминах AngularJS это означает, что мы собираемся написать наше полное приложение в одном HTML-файле. Никаких отдельных файлов JavaScript, никаких внешних модулей - только чистая, необработанная прелесть AngularJS.
Настройка вашего первого вилочного приложения
Шаг 1: Основной скелет HTML
Давайте начнем с основного скелета нашего HTML-файла:
<!DOCTYPE html>
<html>
<head>
<title>Мое первое вилочное приложение AngularJS</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
</head>
<body>
</body>
</html>
Это может показаться знакомым, если вы уже занимались веб-разработкой. Если нет, не волнуйтесь! Мы просто настраиваем базовый HTML-документ и включаем библиотеку AngularJS из Content Delivery Network (CDN). Представьте это как приглашение AngularJS на наш coding-вечеринку.
Шаг 2: Добавление директивы ng-app
Теперь давайте скажем AngularJS, где живет наше приложение:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>Мое первое вилочное приложение AngularJS</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
</head>
<body>
</body>
</html>
Мы добавили ng-app="myApp" к тегу <html>. Это как если бы мы повесили большую табличку на наш дом, говорящую: "AngularJS живет здесь!" Часть myApp - это имя, которое мы даем нашему приложению.
Создание вашего первого контроллера
Что такое контроллер?
В AngularJS контроллер resembles the brain of your application. It manages the data and behavior of a specific part of your app. Let's create one!
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>My First AngularJS In-line App</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
</head>
<body ng-controller="MainController">
<h1>{{greeting}}</h1>
<script>
var app = angular.module('myApp', []);
app.controller('MainController', function($scope) {
$scope.greeting = "Hello, AngularJS World!";
});
</script>
</body>
</html>
Давайте разберем это:
- Мы добавили
ng-controller="MainController"к тегу<body>. Это говорит AngularJS, какая часть нашего HTML контролируется этим контроллером. - Внутри тегов
<script>, мы создаем наш модуль приложения сangular.module('myApp', []). - Затем мы определяем наш контроллер с помощью
app.controller(). Параметр$scopeиспользуется для передачи данных между контроллером и представлением (нашим HTML). - Мы устанавливаем свойство
greetingна$scope. Это делает его доступным в нашем HTML. - В HTML мы используем
{{greeting}}, чтобы отобразить значениеgreeting.
Добавление взаимодействия с пользователем
Давайте сделаем наше приложение немного более интерактивным, добавив кнопку, которая изменяет приветствие:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>My First AngularJS In-line App</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
</head>
<body ng-controller="MainController">
<h1>{{greeting}}</h1>
<button ng-click="changeGreeting()">Изменить приветствие</button>
<script>
var app = angular.module('myApp', []);
app.controller('MainController', function($scope) {
$scope.greeting = "Hello, AngularJS World!";
$scope.changeGreeting = function() {
$scope.greeting = "Greetings, Earthling!";
};
});
</script>
</body>
</html>
Вот что нового:
- Мы добавили кнопку с директивой
ng-click. Это говорит AngularJS, чтобы вызвать функциюchangeGreeting(), когда кнопка нажата. - В нашем контроллере мы определили функцию
changeGreeting()на$scope. Эта функция изменяет значениеgreeting.
В действие.bindings данных
Одна из самых мощных функций AngularJS - это двусторонняя привязка данных. Давайте увидим это в действии:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>My First AngularJS In-line App</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
</head>
<body ng-controller="MainController">
<h1>{{greeting}}</h1>
<input type="text" ng-model="name">
<p>Привет, {{name}}!</p>
<script>
var app = angular.module('myApp', []);
app.controller('MainController', function($scope) {
$scope.greeting = "Welcome to our AngularJS App!";
$scope.name = "Anonymous";
});
</script>
</body>
</html>
В этом примере:
- Мы добавили поле ввода с
ng-model="name". Это связывает значение поля ввода с свойствомnameна нашем$scope. - Мы отображаем значение
nameс помощью{{name}}в нашем абзаце. - Пока вы вводите текст в поле ввода, вы увидите, как приветствие обновляется в реальном времени. Это магия двусторонней привязки данных!
Заключение
Поздравления! Вы только что создали свое первое вилочное приложение AngularJS. Мы рассмотрели основы настройки приложения AngularJS, создания контроллера, обработки взаимодействий с пользователем и реализации двусторонней привязки данных. Помните, как и при изучении любого нового навыка, овладение AngularJS требует практики. Так что не бойтесь экспериментировать, ломать вещи и учиться на своих ошибках. Так мы все стали разработчиками, whom мы являемся сегодня!
Вот таблица, резюмирующая ключевые директивы AngularJS, которые мы использовали:
| Директива | Назначение |
|---|---|
| ng-app | Определяет и инициирует приложение AngularJS |
| ng-controller | Указывает контроллер для определенного участка вашего приложения |
| ng-click | Указывает функцию для выполнения при нажатии на элемент |
| ng-model | Связывает ввод, select или textarea с свойством на scope |
Продолжайте программировать, продолжайте учиться и, самое главное, получайте удовольствие! Помните, каждый expert когда-то был beginner. Ваше путешествие с AngularJS только началось!
Credits: Image by storyset
