本文也同步发表在我的公众号“我的天空

ng-app指令

AngularJS指令是扩展的HTML属性,所有指令均带有前缀“ng-”,我们学习的第一个指令便是ng-app,其定义了AngularJS管理的HTML范围,可以将其想象为“作用域”,只有在添加了ng-app指令的元素中,才能应用AngularJS。如果打算将全部页面应用在AngularJS下,则可以在html标签里加上ng-app指令,如以下代码:

<html ng-app>
    ....
</html>

如果仅仅是在页面的某一部分应用AngularJS,那么可将ng-app指令加在具体HTML元素上,如以下只在第一个DIV内应用AngularJS:

<html>
    <div ng-app>
        ....
    </div>
    <div>
        ....
    </div>
</html>

ng-app可以为其命名,如ng-app="myApp",这个时候便可以通过名称来引用,就像我们之前的演示代码一样,甚至也可以直接写成ng-app=""。

表达式

在AngularJS中,使用表达式将数据绑定在HTML中,并且其与Javascript表达式很相似。AngularJS将表达式用双大括号包裹后嵌入到HTML中,如以下代码将显示10:

<body ng-app>
    <div>{{3+7}}</div>
<body>

当然在实际情况中,我们基本不会直接在表达式里写常量,观察在上一讲中的示例代码,我们在表达式中写了一个变量“test”,同时使用ng-init指令为该变量赋予初值,以下代码将使div的内容显示为"hello":

<body ng-app ng-init="test='hello'">
    <div>{{test}}</div>
</body>

我们也可以使用ng-init为多个变量赋初值,多个变量之间用分号隔开:

<body ng-app ng-init="a='hello';b='angularJS'">
    <div>{{a}}</div>
    <div>{{b}}</div>
</body>

在实际应用中,我们一般不大会使用ng-init来为变量赋初值,在后面的控制器一章中将学习更好的初始化数据的方法。

AngularJS的表达式可以支持多种数据类型,包括数字、字符串、对象、数组等,以下代码分别展示:

AngularJS数字:

<body ng-app ng-init="a=10">
    <div>{{a}}</div>
</body>

AngularJS字符串:

<body ng-app ng-init="a='Hello AngularJS'">
    <div>{{a}}</div>
</body>

AngularJS数组(显示“王五”):

<body ng-app ng-init="names=['张三','李四','王五']">
    <div>{{names[2]}}</div>
</body>

AngularJS对象(显示“男”):

<body ng-app ng-init="people={name:'张三',sex:'男',age:18}">
    <div>{{people.sex}}</div>
</body>

AngularJS表达式与Javascript表达式的相同之处在于其可以包含字母、操作符和变量,不同之处在于它可以写在HTML中,另外也不支持条件判断、循环、异常等。

该系列的示例代码

https://github.com/panyongwow/angularJS

AngularJS(二):ng-app指令、表达式的更多相关文章

  1. 走进AngularJs(二) ng模板中常用指令的使用方式

    通过使用模板,我们可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的.ng的模板真是让我爱不释手.学习ng道路还很漫长,从模板 ...

  2. AngularJS 二 指令介绍

    初始化AngularJS框架 ng-app指令: 在NG-程序指令是AngularJS应用程序的起点.它自动初始化AngularJS框架.AngularJS框架将在加载整个文档之后首先检查HTML文档 ...

  3. angularjs 创建自定义的指令

    创建自定义的指令 除了 AngularJS 内置的指令外,我们还可以创建自定义指令. 你可以使用 .directive 函数来添加自定义的指令. 要调用自定义指令,HTMl 元素上需要添加自定义指令名 ...

  4. 带你走近AngularJS - 创建自己定义指令

    带你走近AngularJS系列: 带你走近AngularJS - 基本功能介绍 带你走近AngularJS - 体验指令实例 带你走近AngularJS - 创建自己定义指令 ------------ ...

  5. 带你走近AngularJS 之创建自定义指令

    带你走近AngularJS 之创建自定义指令 为什么使用AngularJS 指令? 使用过 AngularJS 的朋友应该最感兴趣的是它的指令.现今市场上的前端框架也只有AngularJS 拥有自定义 ...

  6. AngularJS:directive自定义的指令

    除了 AngularJS 内置的指令外,我们还可以创建自定义指令. 你可以使用 .directive 函数来添加自定义的指令. 要调用自定义指令,HTML 元素上需要添加自定义指令名. 使用驼峰法来命 ...

  7. AngularJS常用插件与指令收集

    angularjs 组件列表 bindonce UI-Router Angular Tree angular-ngSanitize模块-$sanitize服务详解 使用 AngularJS 开发一个大 ...

  8. mvvm,如何解析一个指令表达式?

    如何解析一个指令表达式? v-model="msg==='abc'?'1':a" 完美的解决方案 1,with(vm){ return new Function('vm',exp) ...

  9. Flask + vue 前后端分离的 二手书App

    一个Flask + vue 前后端分离的 二手书App 效果展示: https://blog.csdn.net/qq_42239520/article/details/88534955 所用技术清单 ...

  10. App架构师实践指南二之App开发工具

    App架构师实践指南二之App开发工具     1.Android Studio 2.编译调试---条件断点.右键单击断点,在弹出的窗口中输入Condition条件.---日志断点.右键单击断点,在弹 ...

随机推荐

  1. [原创]如何解决IE10下CkEditor报 --- SCRIPT5007: 无法获取未定义或 null 引用的属性“toLowerCase”

    如何解决IE10下CkEditor报 --- SCRIPT5007: 无法获取未定义或 null 引用的属性“toLowerCase” 错误 如果你的IE是IE10,且不是运行在IE的兼容模式你也许会 ...

  2. Set connectionId threw an exception.

    今天调试一个WPF程序时,出现一个问题. 程序运行后抛出异常, "Set connectionId threw an exception. XXXXXXXXXX",原因是依赖的一个 ...

  3. Visual Studio 编译后去掉只读属性

    Visual Studio 编译后去掉只读属性 attrib $(TargetPath) -R attrib $(TargetDir)$(TargetName).pdb -R

  4. C# Json库 和 xml 序列化反序列化 存在的问题

    json 正常情况下不会对私有成员进行序列化和反序列化, 因此在用json做深拷贝时, 就会丢失数据. 解决办法:       声明成公有成员. json在序列化和反序列化时, 如果类中有IComma ...

  5. Synchronized之二:synchronized的实现原理

    Java提供了synchronized关键字来支持内在锁.Synchronized关键字可以放在方法的前面.对象的前面.类的前面. 当线程调用同步方法时,它自动获得这个方法所在对象的内在锁,并且方法返 ...

  6. 用WINHEX合并两个或多个BIN文件

    以前,我给W25Q16下载内容的时候,每次都要分别传输GBK字符.英文字符和图片BIN文件,每次都要传输好几次. 后来,我发现,用WINHEX软件可以把这些BIN文件都合并到一个文件,只需要传输一次就 ...

  7. java递归demo---

    递归思想: 递归就是方法里调用自身 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口 递归算法代码显得很简洁,但递归算法解题的运行效率较低.所以不提倡用递归设计程序. 在递归调用的过程中系 ...

  8. Logstash-安装logstash-filter-multiline插件(解决logstash匹配多行日志)

    ELK-logstash在搬运日志的时候会出现多行日志,普通的搬运会造成保存到ES中日志一条一条的保存,很丑,而且不方便读取,logstash-filter-multiline可以解决该问题. 接下来 ...

  9. Primer回顾 标准库类型

    string类型的输入操作符: 1.读取并忽略开头所有的空白字符(如空格,换行符,制表符). 2.读取字符直至再次遇到空白字符,读取终止.   用getline读取整行文本 getline.接受两个参 ...

  10. C/C++ Sleep(0)

    Sleep(0) 的意义是放弃当前线程执行的时间片,把自身放到等待队列之中.这时其它的线程就会得到时间片进行程序的程序.Sleep(0)能够降低当前线程的执行速 度,比如:现在系统中有100个线程(先 ...