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