Оригинальный текст продолжается, и книга продолжает длиться. Полем Полем Все еще обратитесь к http://code.angularjs.org/1.0.2/docs/guide/compiler
1. Резюме
HTML -компилятор Angular позволяет разработчикам настраивать новый HTML -синтаксис. Компилятор позволяет нам прикреплять поведение к любым элементам или атрибуту HTML, или даже новым тегам HTML, атрибутам (например, <Beautiful Girl = "cf"> </beautiful>). Угловые называет эти дополнительные директивы поведения.
HTML имеет много предопределенных структур HTML в стиле, которые специально форматируют статические документы (которые могут сообщить браузеру, как отобразить тегированный контент). Предположим, что что -то нужно сосредоточиться, и нам не нужно учить браузеру, как это сделать (n слов здесь опущены). Нам просто нужно просто добавить Align = «Center» к тегам, которые должны быть центрированы. Это отличная вещь о декларативном языке.
Но декларативные языки также имеют свои ограничения, то есть вы не можете сказать браузеру, как обрабатывать синтаксис за пределами предопределенного масштаба. Например, мы не можем сказать браузеру очень просто, как выровнять текст 1/3 браузера. Таким образом, нам нужен способ, чтобы браузер двигался со временем и выучил новые грамматики.
Угловые предварительные привязки некоторые директивы, которые полезны для строительства приложений. Мы также можем создать уникальные директивы для наших собственных приложений. Эти директивные расширения станут «конкретным языком домена» наших собственных приложений.
Эти компиляции будут происходить только на стороне браузера и не требуют серверных или предварительных работ.
2. Компилятор
В качестве угловой службы компилятор отвечает за пересечение структуры DOM и нахождения свойств. Процесс компиляции разделен на два этапа:
1. Компилирование: пройдите дерево узлов DOM и соберите все директивы. Результатом является функция связывания.
2. Ссылка: привязайте директивы в область и создайте живой вид. Любые изменения в области объема будут отражены в представлении (обновить представление); Деятельность любого пользователя (изменение) в шаблоне будет отражена в модели областей (двусторонняя привязка). Это позволяет модели областей отражать правильное значение.
Некоторые директивы, такие как NG-Repeat, копируют определенный элемент (комбинация) один раз для каждого элемента в коллекции. Компиляция и связывание - это два этапа для повышения производительности. Потому что клонированный шаблон должен быть скомпилирован только один раз, а затем связывать элементы в каждой коллекции один раз (аналогично кэше шаблона).
3. Директива
Директива - это поведение, которое запускается, когда во время компиляции встречается конкретная структура HTML. Директивы могут быть помещены в имя, атрибут, класс и даже комментарии элементов. Вот несколько способов ссылки на NG-Bind (встроенная директива):
<span ng-bind = "exp"> </span> <pran> </span> <ng-bind> </ng-bind> <!-Директива: ng-bind exp->
Директива - это просто функция, которая выполняется, когда компилятор встречается с ней в DOM. В документации директивы API подробно объясняется, как создать директиву.
Вот образец, который позволяет элементу воспроизводить прятку с мышью ...
<! Doctype html> <html lang = "zh-cn" ng-app = "hideankseek"> <head> <meta charset = "utf-8"> <title> скрыт и ищите </title> <style type = "text/css"> .ng-cloak {display: note; } </style> </head> <body> <span Wildcat> Я убежал, как только я коснулся ~~ Come Me ~~ </span> <script src = "../ angular-1.0.1.js" type = "text/javascript"> </script> <script type = "text/javascript"> ingular.mular.module ("hideankseek", ","? Функция ($ Document) {var maxleft = 400, maxtop = 300; «Положение»: «Абсолют», «Граница»: «1PX Solid Green»}); }). Текст (msg [parseint (math.random () * 10000 % msg.length)];Добавление атрибута «Wildcat» в любой элемент заставит элемент иметь новое поведение. Таким образом, мы научили браузера, как иметь дело с элементами, которые будут прятаться и искать (не волнуйтесь, вы не в определенной комнате, вы не будете повесить -_-!). Мы расширили «словарный запас» браузера благодаря этому подходу. Это относительно естественный способ для тех, кто знаком с правилами HTML.
Сейчас поздно ночью, и мы продолжим завтра. Полем Полем Увидимся после объявления
===================== Великолепная разделительная линия ========================
4. Понять представление (представление)
Вне много шаблонных систем, которые обычно подключаются к данным через строки шаблонов, генерируют конечную строку HTML и записывают результат в элемент через атрибут innerhtml.
Это означает, что когда какие -либо данные изменяются, данные и шаблоны должны быть снова объединены в строки, а затем записываются в соответствующий элемент как innerhtml. Здесь есть некоторые проблемы: (я действительно не могу понять буквальный перевод здесь ... только Yy) Предположим, что есть такая сцена, и шаблон содержит поле ввода. Пользователь входит в окно ввода, а шаблон обновляется синхронно. Нормальные шаблоны обновляют представления через innerhtml, строки и соединения данных, которые будут прерывать пользовательский ввод и иметь плохой опыт.
Угловой уникален. Угловой компилятор (компилятор) обрабатывает DOM через директивы, а не путем обработки строковых шаблонов. Результатом обработки является функция связывания, которая объединяется с моделью областей и генерирует шаблон в реальном времени. Привязка представления с моделью областей является прозрачной для нас. Разработчикам не нужно делать какие -либо действия для обновления представлений или моделей. Более того, поскольку шаблон представления не обновляется с помощью innerhtml, пользовательский ввод не будет прерван. Кроме того, угловые директивы могут не только связывать значения текста, но и быть поведенческими конструкциями.
Этот метод обработки углового создает стабильный DOM. Это означает, что в течение жизненного цикла элемента DOM он всегда связан с экземпляром определенной модели, и эта связь не изменится. Это также означает, что код может сохранить ссылку на объект DOM, регистрировать функции событий, и что эта ссылка не будет разрушена путем слияния данных шаблона.