AngularJS基础知识

AngularJS

概念

  • 一款优秀的前端JS框架
  • 伪静态文本展示设计的声明式语言

优点

  • 为了克服HTML在构建应用上的不足
  • 开发周期短
  • 完成相同功能的代码量少

使用场景

  • web开发
  • SPA(single web page application) 单页面应用
  • 混合APP开发

对比

  • JavaScript : 刀耕火种
  • 函数类库(JQuery): 铁犁牛耕
  • 框架(AngularJS): 机械化种地

缺点

  • 不适用DOM操作频繁的操作(游戏和网页编辑器等)

框架

  • AngularJS
  • VueJS
  • Backbone

历史

  • 2009年 Misko Hevery创建,后被Google收购并用于很多Google项目
  • 数据:17000 6 1500 3
  • 学习版本:1.5.8

下载

  • npm install angular

主要内容

1.指令

1.1 系统指令

  • 渲染指令(解释)
    • ng-app:定义angularjs生效的范围
    • ng-model:定义模型数据
    • ng-controller:定义控制器($scope)
    • ng-bind:绑定文本模型 等价于:{{}}
  • 事件指令
    • ng-click
    • ng-mouseover|mouseout|mouseenter|mouseleave
    • ng-submit
    • ng-change:
  • 节点指令-DOM操作
    • ng-checked
    • ng-switch/ng-switch-when
    • ng-style
    • ng-class
    • ng-hide/ng-show
    • ng-href/ng-src
    • ng-repeat ng-repeat=”user in userlist” [{},{},{}]
    • ng-include

1.2 自定义指令

// HTML代码
// 标签指令

// class指令

 
 
// 属性指令
// 注释指令

2.服务(Service):控制器都可以使用的数据,就定义为服务

2.1 系统服务

  • $http(ajax)
  • $timeout
  • $interval
$http服务:(Promise)
$http.get(url, [config]).then(successCallback, errorCallback)
$http.post(url[,data][, config]).then(successCallback, errorCallback)

$timeout/$interval:执行结束之后会自动触发脏值检测
setTimeout/setInterval:也会执行,但是不会触发脏值检测,不能同步更新视图

2.2 自定义服务

// 1.新建模块
var app = angular.module('myApp', []);

// 2.新建服务:
// 使用service创建的服务最终只可以返回对象
app.service('ZuliaoService', function() {
    // 返回一个对象
    return {
        username: "足疗小妹",
        age: 18,
        work: function() {
            alert('技术棒棒的');
        }
    };
    // 返回字符串无效
    // return 'hello H511';
})

// 使用factory创建的服务可以返回字符串和对象
app.factory('ZuliaoFactory', function() {
    // 返回对象
    return {
        username: "洗发小妹",
        age: 22,
        work: function() {
            alert('给凡凡洗的一头懵逼');
        }
    };

    // 返回字符串
    return 'hello world';
})

3.过滤器(filter)

3.1 系统过滤器

currency:货币
number
limitTo
lowercase
uppercase
date
filter
orderBy

3.2 自定义过滤器

// 1.新建模块
var app = angular.module('myApp', []);

// 2.创建自定义的过滤器 3999=>3999.00
app.filter('formatNumber', function() {
    // 返回一个函数,函数的参数是需要过滤的值
    return function(i) {
        // 保留两位小数点
        return i.toFixed(2);
    }
})

4.路由:引导用户访问指定的页面 = get+请求路径

// 1.新建模块
var app = angular.module('myApp', ['ngRoute']);

// 2.新建路由:routeProvider:路由提供者
app.config(function($routeProvider) {
    // 建路由(链式调用)
    $routeProvider
        .when('/index', {
            // 当请求/index路由的时候,template内容被写入到ng-view中
            template: '

这是首页

'! }) .when('/list', { // 通过ajax从服务器获取,所以必须用localhost访问 templateUrl: 'template/list.html', // 与list页面匹配的控制器 controller: 'ListController' }) .when('/content', { templateUrl: 'template/content.html', // 与content页面匹配的控制器 controller: 'ContentController' }) .otherwise({ // 如果请求的路由都不存在,重定向到/index首页 redirectTo: '/index' }) })

常用方法

// 手动监听price和num的变化
$scope.$watch('price',function(){})
$scope.$watch('num+price',function(){})
$scope.$watch('cartlist',function(){},true) 深度监听

// 遍历数据
angular.forEach($scope.shoplist,function(value,key){})

动画效果

依赖CSS效果

表单验证

表单name名.表单元素name. valid valid invalid dirty pristrine error.required

核心思想

  • MVC
    • Model 模型,跟页面数据 ng-model
    • Controller 控制器 控制当前范围内的逻辑操作 ng-controller
    • View 视图,HTML模板内容 HTML标签
  • 模块化
  • MVVM model-view-viewmodel
  • 数据的双向绑定
  • 依赖注入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值