2

以下代码片段摘自 Angular 文档:

<html ng-app="phonecatApp">
<head>
  ...
  <script src="lib/angular/angular.js"></script>
  <script src="js/controllers.js"></script>
</head>
<body ng-controller="PhoneListCtrl">
...
...

ng-app ng-controller ng-repeat 被称为指令。

从 DOM 的角度来看,它们是什么?javascript 片段如何以跨浏览器的方式访问它们(我猜 angular.js 必须在做什么)?

4

2 回答 2

1

从 DOM 的角度来看,它们是什么

它们只是普通的 DOM 属性

javascript 片段如何以跨浏览器的方式访问它们

您可以访问 using getAttribute,或者如果您使用的是 jQuery,您可以通过$.attr访问它

window.onload = function(){
    alert(document.getElementById("test").getAttribute("ng-app"));
}

演示

于 2013-10-21T14:01:49.623 回答
1

添加到@KhanhTO:

当浏览器解析 DOM 时,忽略 angular 指令。要制作有效的 HTML,您还可以使用表单data-ng-<name>. 例如,np-app变成data-ng-app

在加载 DOM 和 js 之后,Angular 有自己的解析周期。Angular 将此称为它的$compile阶段。Angular 在这个阶段查看 DOM 并识别它的指令。

Angular 通过提供自己的事件处理循环来修改正常的 JavaScript 流程。这将 JavaScript 拆分为经典和 Angular 执行上下文。只有在 Angular 执行上下文中应用的操作才能受益于 Angular 数据绑定、异常处理、属性监视等......

更多关于角度的概念概述

于 2013-10-21T14:03:48.030 回答