AngularJS__基础、指令

导读:本篇文章讲解 AngularJS__基础、指令,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、AngularJS 简介

AngularJS 是一个 JavaScript 框架。它可通过 <script> 标签添加到 HTML 页面。

AngularJS 通过 指令 扩展了 HTML,且通过  表达式 绑定数据到 HTML。

AngularJS 是一个 JavaScript 框架。它是一个以 JavaScript 编写的库。

AngularJS 是以一个 JavaScript 文件形式发布的,可通过 script 标签添加到网页中:

<script src=”https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js”></script>

注意:我们建议把脚本放在 <body> 元素的底部。这会提高网页加载速度,因为 HTML 加载不受制于脚本加载。

目前最新版本是1.5.8 下载地址: https://code.angularjs.org/

实际操作

1.引入angularJS文件

2.在指定的HTML元素中使用ng-app指令

  通常情况ng-app指令放在body元素中

例如:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <!--导入内部下载的文件-->
        <!--<script src="../angular-1.4.6/angular.min.js"></script>-->
        <!--导入angularJs的网络地址-->
        <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
    </head>
    <body ng-app="">
        <h4>angular是一个JavaScript框架</h4>
        <h4>angular通过指令扩展了HTML,且通过表达式绑定数据到HTML元素</h4>
        <h4>angular是以一个JavaScript文件形式发布的,后缀为.js结尾</h4>
        <h4>angularJS的用法</h4>
        <h5>1.通过script标记引入本地的angular文件</h5>
        <h5>下载地址:https://code.angularjs.org/ </h5>
        <h5>angular.js核心文件</h5>
        <h5>2.引入angularJs CDN文件</h5>
        <h5>https://code.angularjs.org/1.8.2/angular.min.js</h5>
        <h4>实际操作</h4>
        <h5>1.引入angularJS文件</h5>
        <h5>2.在指定的HTML元素中使用ng-app指令</h5>
        <h5>通常情况ng-app指令放在body元素中</h5>
    </body>
</html>

二、引入AngularJS CDN文件

AngularJS官网本身采用AngularJS库构建,页面中的AngularJS库通过Google的CDN(内容分发网络)引入,所以国内访问会有问题。

国内我们一般推荐是以下CDN

引入百度CDN

<script src=”http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js”></script>

bootcdn

<script src=”//cdn.bootcss.com/angular.js/1.5.8/angular.min.js”></script>

AngularJS 扩展了 HTML

AngularJS 通过 ng-directives 扩展了 HTML。

ng-app 指令定义一个 AngularJS 应用程序。

ng-model 指令把元素值(比如输入域的值)绑定到应用程序。

ng-bind 指令把应用程序数据绑定到 HTML 视图。

当网页加载完毕,AngularJS 自动开启。

ng-app 指令告诉 AngularJS,<div> 元素是 AngularJS 应用程序 的”所有者”。

ng-model 指令把输入域的值绑定到应用程序变量 name。

ng-bind 指令把应用程序变量 name 绑定到某个段落的 innerHTML。

如果您移除了 ng-app 指令,HTML 将直接把表达式显示出来,不会去计算表达式的结果。

例如: 

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>

</head>

<body>

<div ng-app="">

  <p>名字 : <input type="text" ng-model="name"></p>

  <h1>Hello {{name}}</h1>

  <p ng-bind="name"></p>

</div>

</body>

</html>

AngularJS__基础、指令

三、 AngularJS 表达式

AngularJS 表达式写在双大括号内:{{ expression }}。

AngularJS 表达式把数据绑定到 HTML,这与 ng-bind 指令有异曲同工之妙。

AngularJS 将在表达式书写的位置”输出”数据。

AngularJS 表达式 很像 JavaScript 表达式:它们可以包含文字、运算符和变量。

<div ng-app=””>

  <p>我的第一个表达式: {{ 5 + 5 }}</p>

</div>

AngularJS 数字就像 JavaScript 数字

<div ng-app=”” ng-init=”quantity=1;cost=5″>

 <p>总价: {{ quantity * cost }}</p>

</div>

使用 ng-bind 的相同实例

<div ng-app=”” ng-init=”quantity=1;cost=5″>

<p>总价: <span ng-bind=”quantity * cost”></span></p>

</div>

AngularJS 字符串就像 JavaScript 字符串

<div ng-app=”” ng-init=”firstName=’John’;lastName=’Doe'”>

<p>姓名: {{ firstName + ” ” + lastName }}</p>

</div>

AngularJS 对象就像 JavaScript 对象

<div ng-app=”” ng-init=”person={firstName:’John’,lastName:’Doe’}”>

<p>姓为 {{ person.lastName }}</p>

</div>

AngularJS 数组就像 JavaScript 数组

<div ng-app=”” ng-init=”points=[1,15,19,2,40]”>

<p>第三个值为 {{ points[2] }}</p>

</div>

例如:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
        <script>
            //创建angularjs模块
            var mytestmodule1=angular.module("mytest1",[]);
            //通过angularjs模块对象创建一个控制器对象
            mytestmodule1.controller('mytestcontroller1',function($scope){
                //声明定义angularjs变量
                $scope.name="zhangsan";
                $scope.number=1234;
                $scope.boo=true;
                $scope.myarr=["zhangsan","lisi","wangwu"];
                $scope.mystu={stuid:1001,stuname:"zhangsanfeng",stuaddress:"武当山"};
            })
        </script>
    </head>
    <body ng-app="mytest1" ng-controller="mytestcontroller1">
        <h4>AngularJS 表达式写在双大括号内:{{expression}}。</h4>
        <h4>AngularJS 表达式把数据绑定到 HTML</h4>
        <h5>算术运算:{{12.5+25.8}}</h5>
        <h5>比较运算:{{100 < 20}}</h5>
        <h5>逻辑运算:{{(100 > 20) || (20 < 10) }}</h5>
        <h5>angularjs变量值的创建过程:</h5>
        <h5>1.创建angularjs模块:  angular.module("模块名称", []);</h5>
        <h5>2.在ng-app指令中引入模块名称:ng-app="模块名称" </h5>
        <h5>3.通过angularjs模块创建一个控制器对象:<br>
            angularjs模块对象.controller('控制器名称',function($scope){})</h5>
        <h5>4.通过ng-controller="控制器名称"引入控制器对象到html网页</h5>
        <h5>6.在定义的控制器中声明定义angularjs变量: $scope.变量名称=变量值;</h5>
        <h5>字符串变量name=={{name}}</h5>
        <h5>数字变量number=={{number}}</h5>
        <h5>boolean变量boo=={{boo}}</h5>
        <h5>数组变量myarr[2]=={{myarr[2]}}</h5>
        <h5>对象变量mystu.stuaddress=={{mystu.stuaddress}}</h5>
    </body>
</html>

四、AngularJS 的双向绑定以及事件绑定

AngularJS 的双向绑定
        第一向:angularjs变量,第二向:html元素
        双向绑定:angularjs变量值变化html元素中的值随之变化
        html元素中的值变化angularjs变量值随之变化
        ng-model 指令把html元素值(比如输入域的值)绑定到angularjs变量中。
angularjs的事件绑定
        1.为html元素添加ng-click=”事件处理方法”
             ng-click指令设置点击事件
        2.在控制器中定义事件处理方法:

例如:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
        <script>
            //创建angularjs模块
            var mytestmodule1=angular.module("mytest1",[]);
            //通过angularjs模块对象创建一个控制器对象
            mytestmodule1.controller('mytestcontroller1',function($scope){
                //声明定义angularjs变量
                $scope.name="张三";
                $scope.stuid=1001;
                $scope.getname=function(){
                    //得到的变量值随绑定的输入域变化,属输入域的值也随变量变化
                    alert($scope.name);
                }
                $scope.getstuid=function(){
                    alert($scope.stuid);
                }
            })
        </script>
    </head>
    <body ng-app="mytest1" ng-controller="mytestcontroller1">
        
        <h4>AngularJS 的双向绑定</h4>
        <h5>第一向:angularjs变量,第二向:html元素</h5>
        <h5>双向绑定:angularjs变量值变化html元素中的值随之变化<br>
            html元素中的值变化angularjs变量值随之变化
        </h5>
        <h5>ng-model 指令把html元素值(比如输入域的值)绑定到angularjs变量中。</h5>
        <input type="text"  ng-model="name"><br>
        <h5>holle:{{name}}</h5>
        <p ng-bind="name"></p>
        <input type="button" value="angular的双向绑定" ng-click="getname()">
        <h5>angularjs的事件绑定</h5>
        <h5>1.为html元素添加ng-click="事件处理方法"</h5>
        <h5>ng-click指令设置点击事件</h5>
        <h5>2.在控制器中定义事件处理方法:</h5>
        <h5 ng-bind="stuid"></h5>
        <input type="button" value="得到变量的值" ng-click="getstuid()">
    </body>
</html>

五、AngularJS 指令

ng-repeat指令–会重复一个html元素

ng-app 指令–初始化一个 AngularJS 应用程序。

ng-model 指令–把元素值(比如输入域的值)绑定到应用程序

ng-bind 指令–把应用程序数据绑定到 HTML 视图。

 例如:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
        <script>
            //创建angularjs模块

            var mytestmodule1=angular.module("mytest1",[]);
            //通过angularjs对象创建一个控制器
            mytestmodule1.controller('mytestcontroller1',function($scope){
                $scope.testrepeat=function(){
                    //创建一组学生信息
                    $scope.stulist=[{stuid:1001,stuname:"zhangsan",stuage:23,stuaddress:"西安"},
                                {stuid:1002,stuname:"lisi",stuage:24,stuaddress:"北京"},
                                {stuid:1003,stuname:"王五",stuage:25,stuaddress:"上海"}];
                }
              
            })
        </script>
    </head>
    <body ng-app="mytest1" ng-controller="mytestcontroller1">
        <h4>ng-repeat指令--会重复一个html元素</h4>
        <h5>实例:在一个表格中输出一组学生信息</h5>
        <input type="button" value="测试ng-repeat指令" ng-click="testrepeat()">
        <table border="1px">
            <tr align="center">
                <td>学生编号</td>
                <td>学生姓名</td>
                <td>学生年龄</td>
                <td>学生地址</td>
            </tr>
            <tr align="center"  ng-repeat="stu in stulist">
                <td>{{stu.stuid}}</td>
                <td>{{stu.stuname}}</td>
                <td>{{stu.stuage}}</td>
                <td>{{stu.stuaddress}}</td>
            </tr>
        </table>
        <p>名字 : <input type="text" ng-model="name"></p>
        <h1>Hello {{name}}</h1>
        <p ng-bind="name"></p>
    </body>
</html>

AngularJS__基础、指令

ng-init指令–页面初始化指令【变量值/对象/数组/方法[控制器中]】 

例如:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
        <script>
            //创建angularjs模块
            var mytestmodule1=angular.module("mytest1",[]);
            //通过angularjs模块对象创建一个控制器对象
            mytestmodule1.controller('mytestcontroller1',function($scope){
               $scope.initmethod=function(){
                   alert("页面初始化方法");
               }
            })
        </script>
    </head>
    <body ng-app="mytest1" ng-controller="mytestcontroller1" 
    ng-init="name='zhangsan';myobj={perid:1001,pername:'lisisi',perage:23};
    stulist=[{stuid:1001,stuname:'zhangsan',stuage:23,stuaddress:'西安'},{stuid:1002,stuname:'lisi',stuage:24,stuaddress:'北京'}];
    initmethod();">
        <h4>ng-init指令--页面初始化指令【变量值/对象/数组/方法[控制器中]】</h4>
        <h4>ng-init指令--舒适化变量值:{{name}}</h4>
        <h5>ng-init指令--初始化对象{{myobj.perid}}-{{myobj.pername}}-{{myobj.perage}}</h5>
       <ul>
           <li ng-repeat="stu in stulist">
            {{stu.stuid}}--{{stu.stuname}}--{{stu.stuage}}--{{stu.stuaddress}}
           </li>
       </ul>
    </body>
</html>

六、AngularJS 模块

模块–表示一个angularjs应用程序【控制器{变量/方法} / 服务】
模块是应用程序中不同部分的容器
我们在html元素中使用ng-app引入模块,那么模块中的内容就只能在当前html元素中使用
模块是应用控制器的容器。模块可以创建控制器
创建模块: angular.module(“模块名称”, []);
在指定的html元素上body / div 通过ng-app指令引用模块

 例如:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
        <script>
            //创建angularjs模块
            var mytestmodule1=angular.module("mytest1",[]);
        </script>
    </head>
    <body ng-app="mytest1">
        <h4>angularjs模块</h4>
        <h5>模块--表示一个angularjs应用程序【控制器{变量/方法} / 服务】</h5>
        <h5>模块是应用程序中不同部分的容器。<br>
            我们在html元素中使用ng-app引入模块,那么模块中的内容就只能在当前html元素中使用</h5>
        <h5>模块是应用控制器的容器。模块可以创建控制器</h5>
        <h5>创建模块: angular.module("模块名称", []);</h5>
        <h5>在指定的html元素上body / div 通过ng-app指令引用模块</h5>
    </body>
</html>

七、angularjs中的控制器和$cope作用域

AngularJS控制器

AngularJS 应用程序被控制器控制。页面中使用的变量/方法都是定义在控制器中来使用

创建控制器:模块对象.controller(‘控制器名称’,function($scope){})

ng-controller 指令定义了应用程序控制器.我们创建好的控制器需要ng-controller 指令引入到当前页面

控制器中的变量: $scope.变量名称=变量值;

定义的变量可以通过ng-model绑定到html元素上,也可以通过”{{“表达式”}}”显示变量的值到html元素上

 注意:变量与html元素的值双向绑定

控制器中的方法: $scope.方法名称=function([参数]){  };

 定义的方法可以通过ng-init指令/ng-click指令/控制器内部可以调用。 

$scope—Scope(作用域)

是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带

$scope是一个对象,有可用的方法和属性。

例如:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
        <script>
            //创建angularjs模块
            var mytestmodule1=angular.module("mytest1",[]);
            //通过angularjs模块对象创建一个控制器
            mytestmodule1.controller("mytestcontroller",function($scope){
                //声明定义变量
                $scope.name="zhangsan";
                //声明一个方法在初始化指令中引用
                $scope.testmethod=function(){
                    alert("testmethod");
                }
                $scope.testclick=function(){
                    alert("testclick")
                }
            })
        </script>
    </head>
    <body ng-app="mytest1" ng-controller="mytestcontroller" ng-init="testmethod();">
        <h4>AngularJS控制器</h4>
        <h5>AngularJS 应用程序被控制器控制。页面中使用的变量/方法都是定义在控制器中来使用</h5>
        <h5>创建控制器:模块对象.controller('控制器名称',function($scope){})</h5>
        <h5>ng-controller 指令定义了应用程序控制器.我们创建好的控制器需要ng-controller 指令引入到当前页面</h5>
        <h5>控制器中的变量: $scope.变量名称=变量值;<br>
            定义的变量可以通过ng-model绑定到html元素上,也可以通过"{{"表达式"}}"显示变量的值到html元素上<br>
            注意:变量与html元素的值双向绑定
        </h5>
        <h4>{{name}}</h4>
        <h5>控制器中的方法: $scope.方法名称=function([参数]){  };<br>
            定义的方法可以通过ng-init指令/ng-click指令/控制器内部可以调用。
        </h5>
        <input type="button" value="测试方法" ng-click="testclick();">
        <h4>$scope---Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带</h4>
        <h4>$scope是一个对象,有可用的方法和属性。</h4>
    </body>
</html>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/79853.html

(0)
小半的头像小半
0 0

相关推荐

  • 小米秋招笔试题(强化基础) 前端开发

    小米秋招笔试题(强化基础)

    0 0170
    飞熊的头像 飞熊
    2023年7月14日
  • Vue中使用路由传参的常用三种方式示例演示 Vue

    Vue中使用路由传参的常用三种方式示例演示

    0 0174
    飞熊的头像 飞熊
    2023年12月19日
  • vue组件通信方式有哪些? Vue

    vue组件通信方式有哪些?

    0 0418
    小半的头像 小半
    2022年11月9日
  • 【uniapp】[Vue warn]: Invalid component name: “.-pages-Myblock-uni_myMessage“. Component names should 前端开发

    【uniapp】[Vue warn]: Invalid component name: “.-pages-Myblock-uni_myMessage“. Component names should

    0 0317
    小半的头像 小半
    2023年2月10日
  • Vue 动态生成表格的行和列 前端开发

    Vue 动态生成表格的行和列

    0 0278
    小半的头像 小半
    2022年12月30日
  • Node.js:流数据入门教程 前端开发

    Node.js:流数据入门教程

    0 093
    小半的头像 小半
    2024年3月18日
  • JavaScript——制作一个页面电子时钟 前端开发

    JavaScript——制作一个页面电子时钟

    0 0187
    小半的头像 小半
    2022年5月16日
  • Vue中 使用 WebSocket 前端开发

    Vue中 使用 WebSocket

    0 0156
    飞熊的头像 飞熊
    2023年4月28日
  • Vite4+Typescript+Vue3+Pinia 从零搭建(1) – 项目初始化 前端开发

    Vite4+Typescript+Vue3+Pinia 从零搭建(1) – 项目初始化

    0 0187
    小半的头像 小半
    2024年2月4日
  • Vite 3.0 正式发布,下一代前端工具链! 前端开发

    Vite 3.0 正式发布,下一代前端工具链!

    0 0220
    小半的头像 小半
    2022年11月4日
  • Vue3 相比于 Vue2,有哪些 “与众不同” ? 前端开发

    Vue3 相比于 Vue2,有哪些 “与众不同” ?

    0 0124
    小半的头像 小半
    2022年10月11日
  • uni-app的几种提示框 前端开发

    uni-app的几种提示框

    0 0305
    小半的头像 小半
    2023年2月10日

扫码关注公众号,技术文章第一时间送达

AngularJS__基础、指令

站长精选

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!

玻璃钢生产厂家镂空玻璃钢雕塑小品福建户外玻璃钢雕塑图片马鞍山水果玻璃钢雕塑湖南玻璃钢卡通动物雕塑定制黑龙江玻璃钢仿铜雕塑鹰潭玻璃钢雕塑供应商东方玻璃钢雕塑咨询客服曲靖玻璃钢雕塑价格玻璃钢雕塑厂家招工曲阳县玻璃钢雕塑厂有多少个定做玻璃钢花盆价格大型玻璃钢ip雕塑高质量玻璃钢雕塑订做价格河北艺术商场美陈制造2017商场美陈工作总结哪里有玻璃钢仿铜雕塑生产厂家玻璃钢瓜果雕塑设计山西玻璃钢雕塑价位北京动物玻璃钢雕塑生产厂家台州玻璃钢海豚雕塑组合式玻璃钢雕塑摆件售价玻璃钢园林工程雕塑玻璃钢雕塑制作工艺流程视频玻璃钢不锈钢景观雕塑报价黔南玻璃钢雕塑厂家江门树脂玻璃钢雕塑制作濮阳玻璃钢喷泉雕塑兴城玻璃钢牌匾雕塑宁波玻璃钢雕塑哪家专业佛像玻璃钢雕塑生产厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化