我已经阅读了AngularJS 文档文档页面,但我仍然不清楚到底发生了什么。编译器如何运行?我的意思是编译器是一段 Javascript,它在页面加载时触发以运行和检查 DOM。如果是这种情况,那么每次加载页面时是否有很多开销?
我还读到你永远不应该更改控制器内的 DOM。为什么会这样,有人可以给我一个简单的例子来说明我不应该做什么。
我已经阅读了AngularJS 文档文档页面,但我仍然不清楚到底发生了什么。编译器如何运行?我的意思是编译器是一段 Javascript,它在页面加载时触发以运行和检查 DOM。如果是这种情况,那么每次加载页面时是否有很多开销?
我还读到你永远不应该更改控制器内的 DOM。为什么会这样,有人可以给我一个简单的例子来说明我不应该做什么。
你应该在网站上做一个手机教程的演练。方向很清楚,它将向您展示如何设置您的应用程序以及正确的代码应该在哪里。正如 Arun 所说,DOM 操作应该主要在你的指令中处理。控制器处理逻辑,模板处理数据绑定并结合指令来完成 DOM 操作。当您完成本教程时,您将开始将 Angular 视为一种不同的思维方式。
就编译而言,渲染 index.html 页面,然后加载脚本,然后 Angular 开始根据路由和控制器查找包含视图模板的属性。然后用绑定和观察的变量解析模板,然后显示给用户。当然,有一点延迟,您可以在http://builtwith.angularjs.org/上看到。在右上角,您会看到“使用 AngularJS 构建的 75 个巧妙的东西”。如果刷新页面,您会注意到 75 被替换为?
直到页面加载(不到一秒后)。老实说,除非你的控制器和视图非常复杂,否则渲染时间永远不会很长。个人示例,我正在生成一个包含 12 列数据、144 行长的报告页面,通过多次解析和循环 JSON 对象并运行计算并创建一个新对象,所有这些都在调用模板时在控制器中进行。在数据出现、模板化、格式化并带有适当的回调之前,页面会出现大约四分之一秒的空白。
再次,尝试一下,自己看看。