初识AngularJs

本文深入解析AngularJS,涵盖其设计目的、基本使用注意事项及关键概念,如表达式、指令、模型、作用域等,适合初学者快速掌握。

今天看看angular。文章将从三个大的部分来说,第一部分什么是angular,第二部分,初次使用时需要注意的一些事项,第三部分,angular基础概念;

一,什么是AngularJs?

AngularJs是为了克服html在构建应用上的不足而设计的,它是一个JavaScript框架。通过使用我们称为标识符的结构,让浏览器能够识别新的语法。例如使用{{}}进行数据绑定。

AngularJs通过为开发者呈现一个更高层次的抽象来简化应用开发,这在带来方便的同时也导致灵活性的降低。AngularJs主要考虑的是构建CURD(增加:create,更新:update,查询:retrieve,删除:delete)应用。像游戏或者图形处理应用这种dom操作频繁和复杂的应用则不适合用它来开发。

从表象上来看,AngularJs通过新的属性和表达式扩展了html。比如可以直接写在双大括号里面的表达式,带有ng-前缀的各种指令等等,让html元素完成了很多神奇美妙的事情,这在某种程度上取代了我们之前需要专门在单独的文件中手写的复杂的各种dom操作。举个例子:用原生JavaScript获取一个值,并赋给html元素,首先我们要取到这个元素,把它存于一个变量,然后将需要赋给它的值取到,最后通过赋值运算符或者函数实现赋值。有了angular之后我们只要将数据导入应用,然后在元素内部通过{{变量名}}就可以实现给元素赋特定值的操作了。

二,初次使用AngularJs时需要注意的一些事项。

1.调用:angular.min.js这是压缩后的文件名,具体路径根据自己本地情况而定。像引用其他js文件一样在<script>标签中引入,需要注意的是对应的代码应该写在引用语句之后。

2.ng-app:这是一个指令,之所以放在这里说是因为,只要你要开始一个angular引用的练习就必然要和他打交道。

先看下面代码:我在一个html应用中定义了两个无名的应用,因为我觉得很小的知识点又类似,想放在一个网页上运行,其结果是第一个显示正常,第二个直接将表达式原封不动的输出了。查了下原因,这个应该和后面的模块定义有关。所以呢,刚开始使用还是乖乖的把应用分开在独立的html文件中创建吧。

       <div ng-app="" ng-init="firstname='ben';lastname='xiaohai'">
                <p>数学运算:{{5+9}}</p>
                <p>字符串:姓{{firstname}},名{{lastname}},姓名{{firstname+lastname}}</p>
            </div>
            <div ng-app="" ng-init="person={firstname:'ben',lastname:'xiaohai'}">
                <p>对象:姓{{person.firstname}},名{{person.lastname}},姓名{{person.firstname+person.lastname}}</p>
            </div>

3.就是,不要忘记了,angular是一个JavaScript框架,所以很多东西是通的,不要因为陌生就忘记或者忽略了,比如初始化数据时字符串需要引号,数字不需要等等。

三,AngularJs的基础概念。

粗粗看了下,基础概念大概有二十多个,这里简单讲解。

1,angular表达式

angular使用表达式把数据绑定到html,表达式写在双大括号内。最终数据将输出在双括号所在位置。angular表达式类似于JavaScript表达式,可包含文字,运算符和变量。

数字运算和字符串:

       <div ng-app="" ng-init="firstname='ben';lastname='xiaohai'">
                <p>数学运算:{{5+9}}</p>
                <p>字符串:姓{{firstname}},名{{lastname}},姓名{{firstname+lastname}}</p>
            </div>

数据源为对象时的调用:

     <div ng-app="" ng-init="person={firstname:'ben',lastname:'xiaohai'}">
            <span>姓:{{person.firstname}}</span>
            <p>姓名:{{person.firstname+person.lastname}}</p>
        </div>
2,angular指令

angular通过被称为指令的新属性来扩展html,通过内置的指令为应用添加新功能,并且允许你自定义指令。指令都带有前缀:ng-,如:ng-app,ng-init,ng-model等。它可以实现数据绑定,循环生成html元素等等功能。

指令实现数据绑定:

        <div ng-app="" ng-init="quantity=1;price=5">
                数据绑定:
                <input type="number" ng-model="quantity" />
                <input type="number" ng-model="price" />
                <p>总价:{{quantity*price}}</p>
            </div>

指令用来循环生成元素:注意ng-repeat="x in names",这里的x可以任意命名,但是后文引用时需要同名。比如:<li ng-repeat="item in names">{{item}} </li>

       <div ng-app="" ng-init="names=['ben','xiao','hai']"><ul>
                <li ng-repeat="x in names">
                    {{x}}
                </li>
            </ul>
            </div>

自定义指令:可通过restrict来限制指令的使用范围,E,元素名;C,类名;A,属性名;M,注释。默认值为EA。

script文件中定义:

      var app=angular.module("zdyApp",[]);
            app.directive("zdytag",function(){
                return{
            restrict:"E"; template:
"<p style='color:red;'>首先声明模块,然后在模块的directive方法里面自定义指令,通过标签形式调用。</p><h1>自定义指令.</h1>" }; })

html中调用:

       <div ng-app="zdyApp"> 
                <zdytag></zdytag>
            </div>
3,angular模型

用于绑定应用程序数据到html(input,textarea等)控制器的值。通俗的说,就是ng-model=“变量”指令指定的变量的值,会和页面中其它用到该变量的地方同步。

调用script文件中的数据:

script代码:定义了name变量的值。

       var app=angular.module("myApp",[]);
            app.controller("myCtrl",function($scope){
                $scope.name="benxiaohai";
            });

html代码:直接通过ng-model将变量值传给元素。

       <div ng-app="myApp" ng-controller="myCtrl" >
                姓名:<input ng-model="name" />
            </div>

通过ng-model实现数据的双向绑定:

    <p>双向绑定:
            <div ng-app="myApp" ng-controller="myCtrl" >
                姓名:<input ng-model="name" />
                <p>您输入的姓名是:{{name}}</p>
            </div>
        </p>

通过ng-model实现输入数据的验证:有了该指令,让后文的验证有章可循

    <p>验证用户输入:model 指定验证内容为用户输入的text。
            <form ng-app="" name="myForm">
                Email:
                <input type="email" name="address" ng-model="text"/>
                <span ng-show="myForm.address.$error.email">这不是一个合法的邮箱地址。</span>
            </form>
        </p>

通过ng-model获取应用状态:类似于有了它就有了一系列借口,通过不同的名称可以获取不同的状态。

    <p>应用状态
            <div ng-app="" name="myForm" ng-init="myText='123@163.com'">
                细心,字符串一定记得用引号,否则程序会发生异常
                Email:
                <input type="email" name="myAddress" ng-model="myText" required/>
                <h1>状态</h1>
                <p>Valid: {{myForm.myAddress.$valid}} (如果输入的值是合法的则为 true)。</p>
                <p>Dirty: {{myForm.myAddress.$dirty}} (如果值改变则为 true)。</p>
                <p>Touched: {{myForm.myAddress.$touched}} (如果通过触屏点击则为 true)。</p>
            </div>
        </p>

通过ng-model使用对应的css类:不合法时元素样式改变。这里的ng-invalid是可以直接使用而不用在html文档中命名的。

<style>
input.ng-invalid {
    background-color: lightblue;
}
</style>
    <p>css类:当不合法时输入框为水蓝色,输入状态不同颜色不同,这是因为给不同的类定义了不同的样式。
            <form ng-app="" name="myForm">
                <input name="email" ng-model="text" required/>
            </form>
        </p>
4,angular作用域

scope是应用在html和JavaScript之间的纽带,也就是说是视图和控制器之间的纽带,它是一个对象有可用的方法和属性,可以应用在视图和控制器上。我们在使用angular创建控制器时可以将$scope对象当做参数传递,在视图中我们就可以调用该对象的属性和方法。(或者说值)或者换一种说法,就是当你在控制器里面添加scope对象时,视图可以获取这些属性。

它是模型,是一个JavaScript对象,带有属性和方法,这些属性和方法可以在视图和控制器中调用。

html代码:

<div ng-app="scopeTest" ng-controller="scopeCtrl">
	<p>{{name}}</p>
</div>

script代码:

<script>
	var app=angular.module('scopeTest',[]); 
	app.controller('scopeCtrl',function($scope){
		$scope.name="我是通过$scope对象定义的值,通过名称传到视图上。";
	})
</script>

在大型项目中scope会有作用范围,可能会有多个$scope,可以通过$rootscope调用根作用域。它是连接应用中各个控制器的纽带。使用$rootscope定义的值,可以在所有控制器中调用。

5,angular控制器

 它控制应用程序的数据,是一个常规的JavaScript对象。ng-controller指令,定义了应用程序的控制器。

6,angular过滤器
7,angular service
8,angular HTTP
9,angular select
10,angularSQL
11,angular HTMLDom
12,angular事件
13,angular模块
14,angular表单
15,angular输入验证
16,angular API
17,angular Bootstrap
18,angular包含
19,angular动画
20,angular依赖注入
21,angular路由
22,angular应用

 

【电力系统】单机无穷大电力系统短路故障暂态稳定Simulink仿真(带说明文档)内容概要:本文档围绕“单机无穷大电力系统短路故障暂态稳定Simulink仿真”展开,提供了完整的仿真模型与说明文档,重点研究电力系统在发生短路故障后的暂态稳定性问题。通过Simulink搭建单机无穷大系统模型,模拟不同类型的短路故障(如三相短路),分析系统在故障期间及切除后的动态响应,包括发电机转子角度、转速、电压功率等关键参数的变化,进而评估系统的暂态稳定能力。该仿真有助于理解电力系统稳定性机理,掌握暂态过程分析方法。; 适合人群:电气工程及相关专业的本科生、研究生,以及从事电力系统分析、运行与控制工作的科研人员工程师。; 使用场景及目标:①学习电力系统暂态稳定的基本概念与分析方法;②掌握利用Simulink进行电力系统建模与仿真的技能;③研究短路故障对系统稳定性的影响及提高稳定性的措施(如故障清除时间优化);④辅助课程设计、毕业设计或科研项目中的系统仿真验证。; 阅读建议:建议结合电力系统稳定性理论知识进行学习,先理解仿真模型各模块的功能与参数设置,再运行仿真并仔细分析输出结果,尝试改变故障类型或系统参数以观察其对稳定性的影响,从而深化对暂态稳定问题的理解。
本研究聚焦于运用MATLAB平台,将支持向量机(SVM)应用于数据预测任务,并引入粒子群优化(PSO)算法对模型的关键参数进行自动调优。该研究属于机器学习领域的典型实践,其核心在于利用SVM构建分类模型,同时借助PSO的全局搜索能力,高效确定SVM的最优超参数配置,从而显著增强模型的整体预测效能。 支持向量机作为一种经典的监督学习方法,其基本原理是通过在高维特征空间中构造一个具有最大间隔的决策边界,以实现对样本数据的分类或回归分析。该算法擅长处理小规模样本集、非线性关系以及高维度特征识别问题,其有效性源于通过核函数将原始数据映射至更高维的空间,使得原本复杂的分类问题变得线性可分。 粒子群优化算法是一种模拟鸟群社会行为的群体智能优化技术。在该算法框架下,每个潜在解被视作一个“粒子”,粒子群在解空间中协同搜索,通过不断迭代更新自身速度与位置,并参考个体历史最优解群体全局最优解的信息,逐步逼近问题的最优解。在本应用中,PSO被专门用于搜寻SVM中影响模型性能的两个关键参数——正则化参数C与核函数参数γ的最优组合。 项目所提供的实现代码涵盖了从数据加载、预处理(如标准化处理)、基础SVM模型构建到PSO优化流程的完整步骤。优化过程会针对不同的核函数(例如线性核、多项式核及径向基函数核等)进行参数寻优,并系统评估优化前后模型性能的差异。性能对比通常基于准确率、精确率、召回率及F1分数等多项分类指标展开,从而定量验证PSO算法在提升SVM模型分类能力方面的实际效果。 本研究通过一个具体的MATLAB实现案例,旨在演示如何将全局优化算法与机器学习模型相结合,以解决模型参数选择这一关键问题。通过此实践,研究者不仅能够深入理解SVM的工作原理,还能掌握利用智能优化技术提升模型泛化性能的有效方法,这对于机器学习在实际问题中的应用具有重要的参考价值。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
【IEEE顶刊复现】水下机器人AUV路径规划MPC模型预测控制跟踪控制(复现)(Matlab代码实现)内容概要:本文档聚焦于【IEEE顶刊复现】水下机器人AUV路径规划与MPC模型预测控制跟踪控制的研究,提供了完整的Matlab代码实现方案。内容涵盖AUV在复杂海洋环境下的路径规划算法设计与模型预测控制(MPC)的跟踪控制策略,重点复现了高水平期刊中的关键技术细节,包括动力学建模、约束处理、优化求解及控制反馈等环节。文档还附带多个相关科研方向的技术介绍与资源链接,突出其在智能控制与机器人领域的高仿真精度与学术参考价值。; 适合人群:具备一定自动化、控制理论或机器人学背景,熟悉Matlab/Simulink环境,从事科研或工程开发的研究生、高校教师及科研人员;尤其适合致力于路径规划、MPC控制、水下机器人系统开发等相关课题的研究者。; 使用场景及目标:①复现IEEE顶刊中关于AUV路径规划与MPC控制的核心算法;②深入理解MPC在非线性系统中的应用机制与优化求解过程;③为水下机器人、无人系统等方向的科研项目提供可运行的代码基础与技术参考;④辅助论文写作、项目申报与仿真验证。; 阅读建议:建议结合文档中提供的网盘资源(如YALMIP工具包、完整代码等)进行实践操作,重点关注MPC控制器的设计参数设置与路径规划算法的实现逻辑,同时可参考文中列举的其他研究方向拓展思路,提升科研效率与创新能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值