angularJS总结

Angular 学习总结 标题 Angular 学习总结 由于博主本人之前只接触过React, 对Angular几乎一无所知。上个月,在我司社区的组织下,截至目前学习了近一个月的Angular,对Angular有了一些非常基础的认识。下面对本月学习心得做总结,期待大家的批评指正。 标题 1、Angular的结构 Angular是一个基于 TypeScript 构建的开发平台, 一个基于组件的框架。 Angular的组件包括三个部分:带有 @Component() 装饰器的 TypeScript 类(.ts)、HTML 模 阅读详情
Angularjs组成部分:
       1、 启动  (startUp)   :--展示 “hello world!”
       2、 执行期(runtime)   :--AngularJs执行期
       3、 作用域(scope)     :--视图和控制器的集合区
       4、 控制器(controller):--应用的行为
       5、 模型  (model)     :--应用的数据
       6、 视图  (view)      :--用户体验页面
       7、 指令  (directives):--扩展html语法
       8、 过滤器(filters)   :--数据本地化
       9、 注入器(injector)  :--聚合创建的应用
       10、模块  (module)    :--配置注入器
       11、$      (namespace)  :--Angular的命名空间
  1、启动(startUp)和执行期(runtime):angular初始化:包括自动初始化和手动初始化,不建议使用手动初始化,AngularJS的编译过程:遍历DOM并收集所有的相关指令,生成一个链接函数。链接:给指令绑定一个作用域生成一个动态视图;
  2、作用域(scope):作用域是视图和控制器的集合应用,是数据绑定的关键因素,在项目开发中尤为重要,项目实例如下:
   .controller('localStorCtrl',function($scope,$http,$window,locals){
//    alert(1);
//    //存储数据
//    $scope.currentUser = null;
     locals.set("username","wangwu");
    // locals.set("password",user.password);
    $scope.currentUser = locals.get("username","");
    
    //读取数据
    // console.log(locals.get("username",""));
    
//    $window.localStorage.name = 12;
//    console.log($window.localStorage.name);
//     localStorage.useNamesss="wangwu";
//     console.log(localStorage.useNamesss);
    
});
    .factory('locals',['$window',function($window){
    return {
        //存储单个属性:
        set : function(key,value){
            $window.localStorage[key] = value;
        },
        //读取单个属性
        get : function(key,defaultValue){
            return $window.localStorage[key] || defaultValue;
        },
        //存储对象,JSON格式
        setObject : function(key,value){
            $window.localStorage[key] = JSON.stringify(value);
        },
        //读取对象
        getObject : function(key){
            return JSON.parse($window.localStorage[key] || '{}');
        }
    }
}]);
  3、控制器(controllers):视图背后的控制代码就是控制器,把模型和回调方法一起发送到“视图”,多个视图对应同一个控制器,实例如上controller
  4、指令(directives)编辑:
   var appModule = angular.module('app', []);
    appModule.directive('hello', function() {
    return {
        restrict: 'E',
        template: '"<"div">"Hi there "<"span ng-transclude">""<"/span">""<"/div">"',
        transclude: true
    };
});

Html:
   <html ng-app='app'>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    </head>
    <body>
        <hello>
            <br/>
            <span>原始的内容,</span><br/>
            <span>还会在这里。</span>
        </hello>
        <hello>
        </hello>
    </body>

    <script src="js/angular.min.js"></script>
</html>
  5、过滤器(filters):主要是接收输入,通过通过某种规则来处理,最后返回一个结果。比如数据本地化等内置九大过滤器,还可自定义过滤器,内置过滤器:currency(货币)、date(日期)、filter(子串匹配)、json(格式化json对象)、limitTo(限制个数)、lowercase(小写)、uppercase(大写)、number(数字)、orderBy(排序)。
  在模板使用:{{ expression | filter }}数据进行格式化
  在指令中对数组进行过滤,然后再输出:<span ng-repeat="a in array | filter ">
  在控制器中使用一个和多个过滤器:
.controller('testC',function($scope,currencyFilter){
    $scope.num = currencyFilter(123534);  
}
  .controller('testC',function($scope,$filter){
    $scope.num = $filter('currency')(123534);
  $scope.date = $filter('date')(new Date());  
}
  自定义过滤器:实例,返回一个数组中偶数值得下标
.filter('odditems',function(){
    return function(inputArray){
        var array = [];
        for(var i=0;i<inputArray.length;i++){
            if(i%2 ==0){
                array.push(inputArray[i]);
            }
        }
        return array;
    }
});
  6、$provide服务负责创建服务(service)的,服务会被叫做provider的东西来定义,例如:定义一个greeting的新provider,这样就可以把greeting变量注入到任何函数中,可以用$get函数来返回这个服务的一个实例
.config(function($provide) {
  $provide.provider('greeting', function() {
    this.$get = function() {
    return function(name) {
      alert("Hello, " + name);
    };
   };
  });
});  
//也可以用以下形式写,两种功能作用相同:
.config(function($provide) {
  $provide.factory('greeting', function() {
return function(name) {
  alert("Hello, " + name);
};
  });
});  
 
//直接运行
.controller('MainController', function($scope, greeting) {
  $scope.onClick = function() {
greeting('Ford Prefect');
  };
});

//开始注入($injector):通过调用get函数来获得任何一个已经被定义过的服务的实例,比如:greeting();

  var greeting = $injector.get('greeting');
  greeting('Ford Prefect');

  //将服务注入到函数中:invoke()方法:

  var myFunction = function(greeting) {
  greeting('Ford Prefect');
};
$injector.invoke(myFunction);  



项目中解决session时效和失效的技术问题:

//session时效
    //定义session改变时所用到的事件,并存储到constants中
app.constant('AUTH_EVENTS',{
    loginSuccess:'auth-login-success',
    loginFailed:'auth-login-failed',
    logoutSuccess:'auth-logout-success',
    sessionTimeout:'auth-session-timeout',
    notAuthenticated:'auth-not-authenticated',
    notAuthorized:'auth-not-authorized'
});

app.config(function ($httpProvider) {
    console.log("session時效");
    $httpProvider.interceptors.push([
        '$injector',
        function ($injector) {
            return $injector.get('AuthInterceptor');
        }
    ]);
})
.factory('AuthInterceptor', function ($rootScope, $q,AUTH_EVENTS) {  //AuthInterceptor:进行拦截显示不同信息
    return {
        responseError: function (response) {
            $rootScope.$broadcast({
                401: AUTH_EVENTS.notAuthenticated,
                403: AUTH_EVENTS.notAuthorized,
                419: AUTH_EVENTS.sessionTimeout,
                440: AUTH_EVENTS.sessionTimeout
            }[response.status], response);
            return $q.reject(response);
        }
    };
});

//session失效过期重新登录:
app.directive('loginDialog', function (AUTH_EVENTS) {
    console.log("session過期");
  return {
    restrict: 'A',
    template: '<div ng-if="visible" ng-include="\'partials\/login.html\'">',
    link: function (scope) {
      var showDialog = function () {
        scope.visible = true;
      };

      scope.visible = false;
      scope.$on(AUTH_EVENTS.notAuthenticated, showDialog);
      scope.$on(AUTH_EVENTS.sessionTimeout, showDialog)
    }
  };
});

//在每个界面都添加:"<"div login-dialog ng-if="!isLoginPage"">""<"/div">"实时监测session是否失效,登录界面不用引用这句话
angularjs学习总结 angularjs学习总结技术文档 立即下载

相关推荐

保姆级教程:用ncnn把自训练的YOLOv8模型塞进Android App(附完整代码)

本文提供了一份详细的保姆级教程,指导开发者如何将自训练的YOLOv8模型通过ncnn框架部署到Android应用中。教程涵盖环境配置、模型训练与转换、Android工程集成及性能优化等全流程,并附完整代码实现,帮助开发者快速掌握移动端AI模型部署技术。

weixin_42659194的博客 255

angular 知识点整理

1

weixin_45264424的博客 1504

别再算错了!深入SAP FI后台,看懂外币清账时汇兑损益的自动计算逻辑

刚接手一家跨国企业的SAP财务模块优化项目时,我遇到了一个棘手案例:每月末外币清账产生的汇兑损益金额总是与财务团队的预期存在差异。最令人困惑的是,系统似乎"擅自"计算出了1989.11元的损益,而财务人员反复手工验算都无法复现这个数字。这让我意识到,要真正掌握SAP FI的外币处理能力,必须深入理解系统后台的汇兑损益计算逻辑——不是停留在操作层面,而是穿透到算法内核。这个过程的精妙之处在于,损益金额不是简单比较两个时点的市场汇率,而是反映业务执行全周期的汇率影响。:损益金额与手工计算不符。

weixin_32932149的博客 474

angular基础总结

插值,属性绑定,条件判断,循环,分支,生命周期,路由等等

gronkie的博客 950

CST--时域仿真的网格设置技巧

对于物理概念清晰的工程师而言,使用时域算法几乎能够解决所有电磁仿真问题,但是,掌握时域算法的仿真技巧比掌握频域的难度大,这恐怕也是很多仿真工程师更喜欢使用频域算法的原因,因此,对于时域算法的灵活应用更能考验你是否是一名合格的仿真工程师。

一只豌豆象的博客 6861

Gartner《构建可扩展数据产品建设框架》心得

数据产品化:从概念到落地的实践指南 当前企业正从传统数据需求模式转向数据产品化新范式。本文系统阐述了数据产品的核心价值、定义分类和实施框架,指出成功关键是将数据包装为可复用、可扩展的产品。Gartner框架强调产品思维,提出4阶段12步实施路径,涵盖设计、工程、发布和监控全流程。文章特别提醒要避免7大常见误区,如简单重命名报表、忽视元数据治理等,建议采取MVP策略,90天内完成从价值验证到产品落地的闭环。实施中需平衡技术选型与业务需求,建立跨职能团队,并通过AARRR模型持续追踪产品价值。

2501_91410404的博客 1005

Angular学习总结

angular学习总结

zhouhuang的博客 1225

国内合规开通ChatGPT Plus实操指南:银行卡绑卡与支付全解析

ChatGPT Plus 是 OpenAI 官方推出的高级订阅服务,基于 GPT-4o 多模态大模型提供语音交互、图像理解与长上下文处理能力。其核心使用前提在于完成合规的国际支付绑定,而非网络接入方式。技术原理上,OpenAI 采用 Stripe 支付网关进行风控校验,重点匹配银行跨境权限、卡片类型(仅支持 Visa/Mastercard/Amex 信用卡)、BIN 号段及地理位置一致性。该机制决定了95%的绑卡失败源于银行端配置缺失或卡片不兼容,而非网络问题。实际应用中,PayPal 作为中间支付层可显著

chuannaoxuan4674的博客 1972

angular相关知识点总结

angular相关知识点总结

dc20200829的博客 1778

【知识分享】CAN总线中终端网络的重要性

P沟道和N沟道晶体管的漏源通态电阻匹配良好时,形成的CANH和CANL信号匹配良好;如果驱动器的一半具有比另一半低得多的导通状态电阻,那么总线共模电压将从VCC/2的显性状态偏离,并回到VCC/2的隐性状态,这将导致每一次状态转换都会伴随着共模电压噪声,从而导致更高水平的传导和辐射能量发射。

一只豌豆象的博客 1543

15 君正IPC库开发总结

在前面的章节中,我们介绍了君正ISP、视频采集、音频采集、音频播放、云台电机、移动侦测算法、人形侦测算法、移动跟踪算法等的封装。那么,应用层如何使用这些封装好的接口呢?根据设计模式中的依赖倒置原则:高层次的模块不应该依赖于低层次的模块,它们都应该依赖于抽象。因此,应用层应当只能感知到我们封装的接口类,而不应当感知到其对应的具体实现类。

hope_wisdom的技术博客 1662

【AngularJS】AngularJS基本使用

文章目录AngularJS指令ng-repeat 指令ng-app 指令ng-init 指令ng-model 指令应用状态ng-show指令ng-disabled 指令创建自定义的指令限制使用AngularJS 表达式AngularJS 应用Scope(作用域)根作用域$rootScopeAngularJS 控制器AngularJS 过滤器AngularJS 服务(Service)$httpAng...

墩墩分墩 735

Mybatis面试题(基础篇)

(1)mybatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。(2)mybatis避免了几乎所有的JDBC代码(说明了mybatis底层用的就是JDBC,只不过是封装了)和手动设置参数以及获取结果集。(3)mybatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的pojo映射成数据库中的记录。

qq_38196449的博客 1687

如何在AngularJS项目中快速集成地图?angularjs-google-maps核心功能详解

想要在AngularJS应用中快速集成Google地图吗?angularjs-google-maps是终极的解决方案!这个强大的AngularJS指令库让地图集成变得简单又快速,即使是初学者也能在几分钟内完成地图功能的添加。本文将为你详细解析angularjs-google-maps的核心功能和使用方法,帮助你快速掌握这个强大的工具。 ## 为什么选择angularjs-google-maps?

gitblog_01020的博客 724

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

angularjs教程_10个学习AngularJS的最佳教程

AngularJS是一个很棒的Javascript框架 ,可用于创建功能强大的 和动态网络应用程序 。 它还涵盖了复杂的客户端应用程序的构建。 自2009年发布以来,AngularJS因其方便地扩展自定义HTML标签和属性(称为“指令”)而被许多开发人员广泛使用。 对于某些人来说,仅通过官方文档学习Angular是不够的。 他们更喜欢基于视频的教程 ,或者更复杂的学习站点,其中包含特定的...

cune1359的博客 1684

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

AngularJS 事件

本篇文章参考自AngularJS权威教程。 1.简介  事件是解耦的好工具,Angular应用提供了很好的事件响应机制,让我们能够在应用中嵌套的各组件之间进行通信。2.事件传播  由于作用域是有层次的,所以我们可以在作用域链上传递事件,也正因为此,各作用域接收事件是有次序的。Angular提供了两个方法, $emit()和$broadcast方法,分别能够向上和向下传播事件。注意,$emit()方法

刚出生的程序猿 1680

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

AngularJS教程:AngularJS入门

AngularJS是用于构建单页应用程序(SPA)的流行JavaScript框架。 AngularJS提供了以下功能,使开发Web应用程序变得容易: 双向数据绑定 依赖注入 自定义HTML指令 使用$ http,$ resource,Restangular等轻松与REST Web服务集成 测试支持 还有很多… 尽管功能比上面列出的要多,但这些是非常常用的...

danpu0978的博客 823

AngularJS教程 AngularJS从0到1——初识AngularJS

一、AngularJS是谁,从何处而来,欲往何处而去AngularJS 是一个JavaScript框架,是Google的一个开源项目。最初由Misko Hevery 和Adam Abrons于2009年开发。现已更新到2.x版本,但是目前使用较多的还是1.x版本。AngularJS是为了克服HTML在构建应用上的不足而设计的,Angular能够更好地为单页面应用服务(SPA,single page

爱读书的旅行者 1300

《AngularJS笔记》

加入新团队,要接触前端框架了,这将是一个大的转变。 以前没有接触过前端框架,一是传统门户型业务的技术选型局限,二是后端基于JSP、ASP.Net前端岗位难以接触到MC层,三是自己对框架在项目中那种“操不完的心”触角无孔不入的机制不是很能接受,自己做项目时候是基于语言规范做,将项目的每一个目录每一个文件每一个命名处理都尽在掌控当中,内部代码亦是如此,顶多为了方便操作DOM选择了jQuery。而涉及...

山茶树和葡萄树 691

AngularJS

Angular JS和jQuery都是JavaScript的框架,两个是平行框架 jQuery添加到页面通过script: <script src="//libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> AngularJS添加到页面通过script: <script src="http://ap...

387

angularJS

AngularJS

qq_37622088的博客 381

AngularJS教程 AngularJS从0到1——AngularJS服务

一、为什么要用AngularJS服务我们之前已经学过AngularJS中的控制器了,在控制器中,我们可以定义函数、变量。设想一下,是否会遇到这样的问题:多个页面中同时用到一个功能相似的函数,但是因为页面不一样,所以每个页面对应的控制器中我们都写了一遍。如果你学到其他编程语言,比如Java,就会自然联想到我们应该把这个函数封装到一个公共类里,以此简化代码,方便调用。AngularJS中的服务就是由此而

爱读书的旅行者 708

angularjs入门教程_AngularJS教程:AngularJS入门

angularjs入门教程 AngularJS是用于构建单页应用程序(SPA)的流行JavaScript框架。 AngularJS提供以下功能,使开发Web应用程序变得容易: 双向数据绑定 依赖注入 自定义HTML指令 使用$ http,$ resource,Restangular等轻松与REST Web服务集成 测试支持 还有很多… 尽管比上面列出的功能...

danpu0978的博客 418

AngularJS简介

AngularJS 简介 AngularJS 是一个 JavaScript 框架。它可通过 标签添加到 HTML 页面。 AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML。 AngularJS 是一个 JavaScript 框架 AngularJS 是一个 JavaScript 框架 AngularJS 是一个 JavaScript

Key_p的博客 851

AngularJS—AngularJS 工作原理详解

个人觉得,要很好的理解AngularJS的运行机制,才能尽可能避免掉到坑里面去。在这篇文章中,我将根据网上的资料和自己的理解对AngularJS的在启动后,每一步都做了些什么,做一个比较清楚详细的解析。首先上一小段代码(index.html),结合代码我们来看看,angular一步一步都做了些什么。<!doctype html> <html ng-app> <head> <script src="a

此博客已停用,博文会逐渐转移到新地址,http://blog.youkuaiyun.com/liupeifeng3514 1251

AngularJS入门 、AngularJS控制器 、AngularJS常见的内置指令

先声明一下,我现在是一名在外培训的学员,主要培训的是H5技术,这几天我刚刚接触AngularJS框架,感觉它使用起来挺方便的,优化了代码,我通过这几天的学习,也稍微了解了一些关于它的一些知识,下面是我这几天学到的知识。 AngularJS的定义和解决方案:    AngularJS是一个基于MVC处理模式,实现了MVVM数据双向绑定的用于开发动态web项目的框架。以其数据和展现分离、MVVM、

wxy_jianling的博客 562
上一篇: angular 身份认证问题
下一篇: 律诗 山水恋
bing_JavaScript
博客等级 码龄11年 44粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值