angular中的全局方法和指令介绍1

2023-11-19

### 复习并总结Angular开发流程 0.下载angular,暴力angular,找到js拖拽过来,npm下载 1.引入 2.在要控制的标签上写上ng-app 3.写controller,告诉angular哪部分dom结构有哪个controller去接管 4.在controller里面处理数据和具体业务逻辑 5.绑定值或文本,ng-model {{}}表达式 ### 复习MVC - MVC是一种设计思想,它是约定了程序的结构应该是怎么。 - 每一个组成原件都会有一个明确的职责。 - 提高代码的结构和可维护性; ### 前端的mvc ## mvvm mv* ### scope![ scope](./pic/angular-mvvm.png) ### ViewModel - scopeMVVMVM scope在Angular中大量使用甚至盖过了C(控制器)的概念,所以很多人把Angular称之为MVVM框架 ## Angular全局Api使用 - 数据比较API + angular.isArray() 判断给定的对象是否为数组。 + angular.isDate() 判断给定的对象是否为日期类型。 + angular.isDefined() 判断给定的对象是否定义过。 + angular.isElement() 判断给定的对象是否为一个DOM元素。 + angular.isFunction() 判断给定的对象是否为一个函数。 + angular.isNumber() 判断给定的对象是否为数字。 + angular.isObject() 判断给定的对象是否为object类型。 + angular.isString() 判断给定的对象是否为字符串。 + angular.isUndefined() 判断给定的对象是否没有定义过(与angular.isDefined()相反)。 + angular.equals() 判断给定的两个对象是否相等。 - 其他API使用 + angular.lowercase() 将字符串转换为小写形式。 + angular.uppercase() 将字符串转换为大写形式。 + angular.copy() 深拷贝一个对象或数组。 + angular.forEach() 遍历对象或数组中的每一个元素并执行一个函数。

    var values = {name: 'feifei', gender: 'zhuzhu'};
    angular.forEach(values, function(value, key) {
    });

    var objs =[1,2];
    angular.forEach(objs, function(data,index,array){
        console.log(data);
        console.log(index);
        console.log(array);
    });
## 模块 ### 控制器的作用 - 初始化属性 - 暴露属性或者行为 - 监视数据变化 scope.name=; scope.$watch(‘name’,function (newVal,oldVal) { console.log(newVal); console.log(oldVal); }) ### 控制器代码压缩问题 - 当代码进行js压缩时候controller里面的内容会被当成变量替换掉, 为了防止这个问题发生在controller中出现 controller(‘myCtrl’,[‘ scop,function( scope){}]) ### 控制器的多种写法 - 1.简单写法 app.controller(‘myCtrl’,function(){}) - 2.早期使用 (angular-1.2.29版本) function myController( scope)$scope.name=angular使;3.fuctionfunctionotherCtrl( scope) { scope.name=’123’;
    }
    app.controller(‘myCtrl’,otherCtrl)
 - 4. fuction写在外面(写在外面不能被压缩)
   function otherCtrl(otherscope) {
        otherscope.name=’123’;
    }
    //依赖注入
    otherCtrl.
inject=[' scope];// inject app.controller(‘myCtrl’,otherCtrl) - 5. 面向对象方法使用
{{scope.name}}
- 1.控制器的function不写改为引用function app.controller('myCtrl',demoCtrl);
- 2.创建一个面向对象的function ` function demoCtrl() {
        this.name='123';
    } `
- 3.使用的时候添加 ` as scope ` ng-controller="myCtrl as scope"
#依赖注入 - 没事你不要来找我,有事我会去找你。 - 原理 框架在调用方法的过程中通过获取到传递的参数,然后框架内部将方法toString处理以后, 再通过正则表达式将其获取到然后依次实例化。 ###控制器继承 var app=angular.module('mainApp',[]); app.controller('SelfCtrl', function( scope)$scope.foo(););app.controller(ParentCtrl,function( scope) { $scope.foo=function(){ console.log(123); } }); ###控制器之间父子通信 1.从父控制器传子控制器
click me

指令

  • 在 AngularJS 中将前缀为 ng- 这种属性称之为指令,其作用就是为 DOM 元素调用方法、定义行为绑定数据等
  • 简单说:当一个 Angular 应用启动,Angular 就会遍历 DOM 树来解析 HTML,根据指令不同,完成不同操作

  • ng-bind

    • 用来解决表达式闪烁问题
    • <p ng-bind="数据模型"></p>替代了{{数据模型}}

      {{name}}

    注意:只能够在双标签中使用ng-bind指令

  • ng-cloak

    • 用来解决表达式闪烁问题
    • 写一个样式使页面的元素隐藏

      .ng-cloak{
      display: none;
      }
    • <p class="ng-cloak">{{name}}</p>
    • 利用angular在加载会移除页面上所以名为ng-cloak的样式名的特性。
  • 页面安全的问题
    直接编写一些

    document.write('
    <div ng-switch="name">
            <div ng-switch-when="小明">我是小明</div>
            <div ng-switch-when="小红">我是小红</div>
            <div ng-switch-when="小月">我是小月</div>
    </div>

其他常用指令

  • ng-checked:
    • 单选/复选是否选中,是单向数据绑定
  • ng-selected:
    • 是否选中
  • ng-disabled:
    • 是否禁用
  • ng-readonly:
    • 是否只读

常用事件指令

不同于以上的功能性指令,Angular还定义了一些用于和事件绑定的指令:

  • ng-blur:失去焦点
  • ng-focus:获得焦点
  • ng-change:改变事件
  • ng-click: ng-click=”add()”
  • ng-dblclick:双击事件
  • ng-submit: 表单提交事件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

angular中的全局方法和指令介绍1 的相关文章

随机推荐

  • Google guava之Multiset简介说明

    转自 Google guava之Multiset简介说明 下文笔者讲述guava中Multiset集合的简介说明 如下所示 guava之Multiset集合简介 Multiset集合 可用于存储重复元素 Multiset是ArrayList
  • 一文1000字彻底搞懂Web测试与App测试的区别

    总结分享一些项目需要结合Web测试和App测试的工作经验给大家 从功能测试区分 Web测试与App测试在测试用例设计和测试流程上没什么区别 而两者的主要区别体现在如下几个方面 1 系统结构方面 Web项目 B S架构 基于浏览器的 Web测
  • Unity编辑器界面概述

    了解界面 如果您对编辑器界面没有非常地了解 那么请花一些时间查看并熟悉 Editor 编辑器 界面 Editor 主窗口由选项卡式窗口组成 这些窗口可重新排列 因此 Editor 的外观可能因项目或者开发者而异 具体取决于个人偏好 Wind
  • GitHub博客搭建

    git官网文档 https git scm com book zh v2 E6 9C 8D E5 8A A1 E5 99 A8 E4 B8 8A E7 9A 84 Git E7 94 9F E6 88 90 SSH E5 85 AC E9
  • mmdetection入门介绍-train.py解析

    四 train py解析 同样 上面有单GPU测试和多GPU测试 其实上面的测试是由训练导致的 单GPU训练 python tools train py CONFIG FILE 如果要在命令中指定工作目录 则可以添加参数 work dir
  • Oracle数据泵、exp/imp工具导入导出数据

    一 最常用导出导入方案 exp imp命令工具 1 ssh工具连接服务器主机 exp命令导出 1 1将数据库全部数据导出 exp system password TestDB file bak dmp log exp log full y
  • Vue 弹出层时 禁止页面滑动

    页面中加顶部蒙层 发现滑动时底部页面内容会正常滚动 一 移动端 直接在蒙层所在div上加 touchmove prevent就好了 div class masktop div 二 PC端 显示弹层调用stop 否则调用move stop 滑
  • 华为OD机试真题- 阿里巴巴找黄金宝箱(V)-2023年OD统一考试(B卷)

    题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上 无意中发现了强盗集团的藏宝地 藏宝地有编号从0 N的箱子 每个箱子上面贴有一个数字 阿里巴巴念出一个咒语数字k k
  • leaflet geojson行政区域展示

    目录 获取geoJson数据 下载数据 获取本地json数据 L poylgan绘制图形 效果展示 完整代码 获取geoJson数据 下载数据 阿里云上下载不了的话 我把json数据放在网盘了 链接 百度网盘 请输入提取码 提取码 ifso
  • vue+django项目部署

    vue django项目部署 部署相关概念 项目服务器架构 反向代理 前端部署 docker docker安装 mac 使用常见命令 nginx 下载安装nginx镜像 域名解析 后端部署 MySQL镜像 Redis镜像 部署前处理 从服务
  • C语言:求最小值

    强数据版本 大佬写 include
  • 扁平化数组(多层嵌套)

    方法一 var arr 1 2 3 4 5 function flatten arr var len arr length var temp for var i 0 i
  • Ollydbg之进程线程调试

    目录 预备知识 1 进程 线程 实验目的 实验环境 实验内容和步骤 实验步骤 1 使用OD调试进程 2 使用OD调试线程 预备知识 本实验要求实验者具备如下的相关知识 1 进程 线程 进程 Process 和线程 Thread 是操作系统的
  • 华三交换机查看上层交换机vlan

    您可以使用Huawei三层交换机查看和配置上层交换机的VLAN设置 可以使用命令 display vlan vlan id 查看指定的VLAN配置 使用命令 vlan vlan id vlan name 配置VLAN设置
  • 【廖雪峰python入门笔记】tuple_创建单元素

    tuple和list一样 可以包含 0 个 1个和任意多个元素 包含多个元素的 tuple 前面我们已经创建过了 包含 0 个元素的 tuple 也就是空tuple 直接用 表示 t print t 创建包含1个元素的 tuple 呢 来试
  • vue3 新特性

    注册全局组件 import HelloWorld from components HelloWorld vue const app createApp App 全局挂载属性和方法 方法一 app config globalPropertie
  • 2021年米哈游unity社招面试经历

    文章目录 简介 一面 二面 三面 四面 简介 我面试的岗位一共4轮 第1轮是电话技术面试 考察范围广 不细问 第2轮是视频面试 需要牛客网手写算法 第3轮是制作人 第4轮是BP 流程比较慢 投递到邀请面试大概过了一个月 面试一周多 offe
  • 使用Python实现累积面积图 using Python for cumulative area plot

    Code import matplotlib pyplot as plt import numpy as np np random seed 444 data np random rand 5 10 cumsum axis 1 years
  • 互联网 API 接口幂等性设计

    WEB 资源或 API 方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用 幂等性是系统的接口对外一种承诺 而不是实现 承诺只要调用接口成功 外部多次调用对系统的影响是一致的 幂等性是分布式系统设计中的一个重要概念 对超时处理 系
  • angular中的全局方法和指令介绍1

    复习并总结Angular开发流程 0 下载angular 暴力angular 找到js拖拽过来 npm下载 1 引入 2 在要控制的标签上写上ng app 3 写controller 告诉angular哪部分dom结构有哪个controll