AngularJS应用入门:ng-app与ng-model深度解析
需积分: 0 183 浏览量
更新于2024-06-30
收藏 42KB DOCX 举报
"AngularJS学习笔记1"
AngularJS是一种广泛使用的前端JavaScript框架,用于构建动态Web应用程序。这篇笔记主要讨论了AngularJS中的ng-app指令以及与控制器相关的变更。
ng-app是AngularJS应用的启动指令,它定义了HTML文档中AngularJS作用域的起点。在AngularJS 1.3及更高版本中,为了减少根元素上的冗余内容,不再推荐直接在根节点(如html标签)上注册controller。这使得应用更加模块化和可维护。
1. ng-app的使用方法:
- 可以在`<html>`标签、`<head>`标签或`<body>`标签中声明ng-app,来指定整个文档或特定部分作为AngularJS应用的范围。例如:
```html
<html ng-app>
```
或者
```html
<body ng-app>
```
- ng-app也可以应用于任何其他元素,但必须确保所有需要AngularJS处理的元素都在ng-app所指定的范围内。例如:
```html
<div ng-app>
<!-- AngularJS 控制器和指令将在此元素及其子元素中生效 -->
</div>
```
2. ng-app的限制:
- ng-app不能只应用于部分元素,例如单独的`<h1>`或`<input>`标签。如果一个元素和另一个元素需要共享数据,它们必须处于同一个带有ng-app的DOM元素之下。
- 下面的示例是无效的,因为两个ng-app创建了两个独立的作用域:
```html
<div ng-app>
<input ng-model="name" type="text" placeholder="Your name">
</div>
<div ng-app>
<h1>Hello {{name}}</h1>
</div>
```
3. ng-app的变种:
- 当多个元素共享同一个ng-model时,它们之间的数据会自动同步。例如,两个输入框和一个显示值的`<h1>`标签:
```html
<input ng-model="name" type="text" placeholder="Your name">
<h1>Hello {{name}}</h1>
<input ng-model="name" type="text" placeholder="Your name">
```
在这个例子中,无论更改哪个输入框,`<h1>`和另一个输入框的值都会同步更新。
- 如果一个输入框的值直接绑定到另一个输入框的表达式,如`{{name}}`,它们之间的联动会有所不同:
```html
<input ng-model="name" type="text" placeholder="Your name">
<input value="{{name}}" type="text" placeholder="Your name">
```
在这种情况下,未主动修改的输入框会镜像第一个输入框的值,但如果直接在第二个输入框中更改值,第一个输入框的双向绑定将不再影响第二个输入框。
总结来说,ng-app是AngularJS应用的入口点,定义了应用的边界。正确地使用ng-app和ng-model可以帮助实现数据绑定和视图同步,但需要注意作用域的范围和数据的关联方式,以确保应用行为符合预期。在新版本的AngularJS中,应避免在根元素上直接注册controller,以保持良好的架构实践。
2013-09-03 上传
2016-06-04 上传
2017-03-26 上传
2015-09-25 上传
2014-07-20 上传
2017-01-23 上传
maXZero
- 粉丝: 31
- 资源: 303
最新资源
- acfplot.m:计算并绘制输入序列自相关的估计值-matlab开发
- 行业文档-设计装置-正和平台.zip
- novious-fw:最初用于Novious网页版项目PHP框架,构建于新浪云引擎之上,部分代码未完善。
- clicks_calculator
- Emoji-Pup-crx插件
- AI-Logic-Based-Agent:使用后继状态公理,智能代理尝试达到其目标
- bookstore,如何查看java源码,java底层源码图解
- meal-planner-node:我们的 springboot 应用程序在 node.js 和 angular 中的简化版本
- navgationkit-docs-sphinx:Autolabor导航套件官方使用手册
- ssc
- actions:内置Logux动作的类型和动作创建者
- InLineQuestion,java源码网站,javaoa源码要多久
- blood-alcohol-calculator:使用FlutterDart构建的BAC计算器
- Frontend-Boilerplate:Frontent Boiler Plate - 使用 NPM、Bower、Gulp、Jade、Scss
- study-php:课程《网页设计与开发》-罗维老师
- iathook:Windows kernelmode和usermode IAT挂钩