摘要:angular.js 准确的来说,应该不是一个框架,是一个 js 库,一个依赖于 jQuery 的进一步封装,去除繁琐的 DOM 操作,使用数据驱动的 MVC 模块化库。

哎,很难受,连续两个大坑,都被我碰上了,以前没有写过 angular,还以为 angular 就是跟 vue, react 一样的框架,没想到 angular.js 跟 angular2 ,竟然没有半毛钱关系,我是服了。竟然是一个老古董项目。

只能退一步想了,先把基础地基打好了,后面再深入框架原理。

还是按照三大步骤:

  • what: 什么是 angular.js
  • why: 为什么要使用 angular.js
  • how: 如何使用 angular.js

什么是 angular.js

angular.js 准确的来说,应该不是一个框架,是一个 js 库,一个依赖于 jQuery 的进一步封装,去除繁琐的 DOM 操作,使用数据驱动的 MVC 模块化库。

这里扯到 MVC 这个词语,也不是很清楚,我自己的理解 M 其实就是 Module 模块,一个 .html 就是一个模块, V 其实就是我们 .html 里面那些 DOM 元素, C 就是我们用来操作 V 那些 js 脚本。

我大概画了一个简单的草图:

不知道对不对,如果不对,恳请各位大佬,提出宝贵的建议,让我有更大的提升,谢谢。

为什么要使用 angular.js

额,我必须要吐槽一下,为毛还要使用 angular.js,为毛不使用 angular2,好歹让我入门 ts 也好啊,好了,既来之,则安之。

用这个 js 库的一个关键原因就是因为可以去除繁琐的 DOM 操作。
使用数据驱动视图的方式,进行开发,非常高效。

如何使用 angular.js

  • ng-app 加载一个入口应用模块
    var app = angular.module('ngApp', []);

有点类似,Vue 项目的 let app = new Vue();

  • ng-init 初始化数据,
<div ng-app="ngApp" ng-init="message='hello world'"></div>

有点类似 Vue 中的 data() 属性。

  • ng-controller 控制器
<div ng-app="ngApp" ng-init="message='hello world'" ng-controller="ngController"></div>

    <script type="text/javascript">
var app = angular.module('ngApp', [])
var controller app.controller('ngController', function($scopr) {})
</script>
  • ng-bind 数据绑定
    有点类似 Vue 中的 v-bind
  • ng-model 数据双向绑定
    有点类似 Vue 中的 v-model
<input type="text" ng-model="message">
  • ng-repeat 数据循环
    有点类似 Vue 中的 v-for
<div ng-app="" ng-init="names=['Jani','Hege','Kai']">
<p>使用 ng-repeat 来循环数组</p>
<ul>
<li ng-repeat="x in names">
{{ x }}
</li>
</ul>
</div>
  • ng-if 为HTML增加选择功能,只有在表达式值为true时,当前元素才添加到DOM树
    有点类似 Vue 中的 v-if
  • ng-show 有点类似 v-show
  • ng-src 有点类似 :src
  • ng-click 有点类似 @click
  • ng-style 有点类似 :style
  • ng-class 有点类似 :class
  • ng-show/ng-hide 有点类似 jq 的中 show(),hide()
  • ng-disabled 有点类似 :disabled
  • ng-checked 有点类似 :checked
  • $scope 有点类似 Vue 中的 data() 属性
  • filter 过滤器,有点类似 Vue 中的 filter
  • $scope.$watch 有点类似 Vue 中的 watch 属性

今天就先到这里吧,其实应该是有些先入为主了,因为其实 Vue 是学了 angular.js 的思想的。

这里有一个很重要的思考方式就是迁移思考。

点击关注,第一时间了解华为云新鲜技术~

如何快速上手 angular.js的更多相关文章

  1. C#程序员快速上手Angular开发

    由vue的技术栈快速切换到Angular,对于C#开发人员来说应该不难,二期是一个比较平滑的过渡.所以最近 记录下切换到Angular框架的一些过程,因为NG天然支持Typescript,特别是当项目 ...

  2. npm、webpack、vue-cli 快速上手

    npm+webpack+vue-cli快速上手   Node.js   npm 什么是Node.js  以及npm 简单的来说 Node.js 就是运行在服务端的JavaScript,基于Chrome ...

  3. 【转】Vue.js 2.0 快速上手精华梳理

    Vue.js 2.0 快速上手精华梳理 Sandy 发掘代码技巧:公众号:daimajiqiao 自从Vue2.0发布后,Vue就成了前端领域的热门话题,github也突破了三万的star,那么对于新 ...

  4. vue.js和vue-router和vuex快速上手知识

    vue.js和vue-router和vuex快速上手知识 一直以来,认为vue相比react而言,学习成本会更低,会更简单,但最近真正接触后,发现vue的各方面都有做一些客户化的优化,有一些亮点,但也 ...

  5. Angular 快速上手

    本文系 Angular 快速上手学习笔记 安装 CLI npm install -g @angular/cli 创建工作空间和初始应用 ng new my-app 启动开发服务器 cd my-app ...

  6. angular.js快速入门 hello world

    我们整个系列的学习会去写一个简单blog雏形,如果有精力再完善美化. 但是这篇还是要从HelloWorld开始学习. angular.js 文件加载我们选用 bootstrap中文网提供的一个cdn服 ...

  7. MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录

    注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是 ...

  8. Angular.js!(附:聊聊非原生框架项目)

    最近,为了项目接触了一个很火的前端框架Angular.js,下面就Angular做一个简介吧(大牛请绕步,只针对没有接触过angular的人). Angular.js是一款精简的前端框架,如果要追溯它 ...

  9. 快速掌握Vue.js使用【转】

    Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们能够快速地上手并使 ...

  10. 快速上手最新的 Vue CLI 3

    翻译:疯狂的技术宅 原文:blog.logrocket.com/getting-sta- 概要:本文将指导你快速上手 Vue CLI 3,包括最新的用户图形界面和即时原型制作功能的使用步骤. 介绍 尤 ...

随机推荐

  1. postman导入请求到jmeter进行简单压测,开发同学一学就会

    背景 这个事情也是最近做的,因为线上nginx被我换成了openresty,然后接入层服务也做了较大改动,虽然我们这个app(内部办公类)并发不算高,但好歹还是压测一下,上线时心里也稳一点. 于是用j ...

  2. 实验四报告: 熟悉Python字典、集合、字符串的使用

    实验目标 本实验的主要目标是熟悉Python中字典.集合.字符串的创建和操作,包括字典的创建.访问.修改和合并,集合的创建.访问以及各种集合运算,以及字符串的创建.格式化和常用操作. 实验要求 通过编 ...

  3. 【Unity3D】UI Toolkit数据动态绑定

    1 前言 ​ 本文将实现 cvs 表格数据与 UI Toolkit 元素的动态绑定. ​ 如果读者对 UI Toolkit 不是太了解,可以参考以下内容. UI Toolkit简介 UI Toolki ...

  4. 记一次服务器Cuda驱动崩溃修复过程

    基本过程 今天实验室师兄在服务器运行深度学习训练时候得到报错CUDA initialization: Unexpected error from cudaGetDeviceCount()疑似Cuda与 ...

  5. CMD和AMD理解

    #AMD <br>1.AMD就是Asynchronous Module Definition,中文名是异步模块定义的意思.<br>2.AMD解决两个问题:解决依赖.异步加载&l ...

  6. FSCTF 2023(公开赛道)CRYPTO WP

    RSA 1 1.题目信息 提交格式:FSCTF{你所解出的内容} p=1458769258361 q=4556983871563 e=17 求d 2.解题方法 exp from gmpy2 impor ...

  7. 大语言模型基础-Transformer模型详解和训练

    一.Transformer概述 Transformer是由谷歌在17年提出并应用于神经机器翻译的seq2seq模型,其结构完全通过自注意力机制完成对源语言序列和目标语言序列的全局依赖建模. Trans ...

  8. List、Set与 Map

    目录 1. List接口和常用方法 1.1 List接口基本介绍 1.2 List接口的三种遍历方式 2. ArrayList 2.1 注意事项 2.2 ArrayList的底层操作机制源码分析(重点 ...

  9. npm 发布包时 图片打包在新的项目引入不显示 路径错误解决方案

    使用的是vue-cli 4.0以上脚手架 vue2.6 封装好组件后 npm publish ,在其他项目引入该组件库 图片显示失败 打开F12时看到 组件库里图片是/img/图片名,可是该项目没有此 ...

  10. Mockito - java单元测试

    原文地址 一.简介 Mockito是mocking框架,它让你用简洁的API做测试,简单易学,可读性强并且验证语法简洁. 官网: http://mockito.org 项目源码:https://git ...