AngularJS——1、表达式 / 指令

本文详细介绍AngularJS的基础概念和常用指令,包括ng-app定义应用、ng-controller添加控制器、ng-model双向数据绑定、ng-bind数据绑定、ng-repeat循环数组、ng-disabled及ng-model控制元素状态、ng-show/ng-hide显示隐藏元素、ng-click事件处理、自定义指令以及模块和控制器的使用。

1、ng-app 定义一个 AngularJS 应用程序(页面加载完自动引用)。

      ng-controller 添加应用的控制器。

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

      ng-bind / {{ expression}} 把应用程序数据绑定到某一处的innerHTML 。

    (script 标签包含的( AngularJS 库)放在 <body> 元素的底部可以提高网页加载速度,但必须置于 AngularJS 脚本前

        因为对 angular.module 的调用只能在库加载完成后才能进行。) 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <!-- <script src="//apps.bdimg.com/libs/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>
            <!-- 表达式{{ expression }}直接“输出”数据 -->
            <p>{{ 1*9*8*7 }}</p>
        </div>
        <script src="//apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
        <script>
            var app = angular.module("xxApp", []);
            app.controller("xxCtrl", function($scope) {
                $scope.name = "Evan Lee";
            });
        </script>
    </body>
</html>

   输出: 

     

2、ng-init 初始化应用程序变量。(一般不使用)

<div ng-app="" ng-init="name='Evan Lee'">
    <p>姓名:
        <span ng-bind="name"></span>
    </p>
</div>

   输出: 

    

3、ng-bind / {{ expression}}

      数字、字符串、对象、数组

<div ng-app="" ng-init="a=1;b=5;c=4;
                        pro='四川';city='成都';
                        person={firstName:'Evan',lastName:'Lee'};
                        points=[6,10,11,12,13]"> 
    <p>姓:{{ person.lastName }}  名:<span ng-bind="person.firstName"></span></p>              
    <p>生日: {{ a*b }} . <span ng-bind=" a*c "></span></p>     
    <p>地址: {{ pro+ " " + city}} <span ng-bind=" pro+ ' ' + city"></span></p>   
    <p> {{ points[3] }}周年 </p>
    <p>following <span ng-bind="points[0]"></span> years</p>               
</div>                                         

  输出:

        

4、ng-repeat 重复一个 HTML 元素。

<div ng-app="" ng-init="names=['YY','FF','LL'];
                alls=[ {name:'YY',sign:'5'},
                       {name:'FF',sign:'0'},
                       {name:'LL',sign:'4'} ]">
  <p>使用 ng-repeat 来循环数组</p>
  <ul>
     <li ng-repeat="x in names">
        {{ x }}
     </li>
  </ul>
  <p>使用 ng-repeat 循环对象数组</p>
  <ul>
     <li ng-repeat="x in alls">
        {{ x.name + ', ' + x.sign }}
     </li>
  </ul>
<div>

输出:

    

5、ng-disabled 绑定应用程序数据("myClick")到HTML的disabled属性。

      ng-model 绑定应用程序数据("myClick")到 checkbox 元素的内容。

<div ng-app="" ng-init="myClick=true">
    <p>
        <button ng-disabled="myClick">button</button>
        <input type="checkbox" ng-model="myClick"/>选中按钮
    </p>
    <p> 是否选中按钮:{{ myClick }} </p>
</div>

  

6、ng-show / ng-hide 显示或隐藏一个HTML元素

<div ng-app="xxApp" ng-controller="xxCtrl">
    <button ng-click="isVisible()">hide / show</button>
    <!-- ng-show="info" 同 -->
    <p ng-hide="info">
        firstName: <input type=text ng-model="firstName"><br>
        lastName: <input type=text ng-model="lastName"><br><br>
        姓名: {{firstName + " " + lastName}}
    </p>
</div>
<script>
    var app = angular.module('xxApp', []);
    app.controller('xxCtrl', function($scope) {
        $scope.firstName = "Evan";
        $scope.lastName = "Lee";
        $scope.info = false;
        $scope.isVisible = function() {
            $scope.info = !$scope.info;
        }
    });
</script>

 输出:    

7、ng-click 单击事件

<div ng-app="xxApp" ng-controller="xxCtrl">
    {{ count }}
    <button ng-click="count = count + 1">点击+1</button>
</div>
<script>
    var app = angular.module('xxApp', []);
    app.controller('xxCtrl', function($scope) {
        $scope.count = 1215;
    });
</script>

输出:  

8、自定义指令

<div ng-app="xxApp" my-dir></div>
<br>
<my-dir>自定义指令!</my-dir>
<script>
    var app = angular.module("xxApp", []);
    app.directive("myDir", function() {
        return {
            template : "创建自定义指令!"
        };
    });
</script>

 输出:   

模块和控制器

<div ng-app="myApp" ng-controller="myCtrl">
    {{ firstName + " " + lastName }}
</div>
<!-- 包含应用模块的定义程序 -->
<script src="xxApp.js"></script>
<!-- 包含控制器 -->
<script src="xxCtrl.js"></script>
//xxApp.js
//[] 参数用于定义模块的依赖关系,存在依赖则在[]内写上依赖的模块名
var app = angular.module("xxApp", []);
//xxCtrl.js
app.controller("xxCtrl", function($scope) {
    $scope.firstName = "Evan";
    $scope.lastName= "Lee";
});

 

内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值