Angular 核心概念2

   2023-03-08 学习力0
核心提示:自定义指令指令增强了 HTML,提供额外的功能内置的指令基本上已经可以满足我们的绝大多数需要了少数情况下我们有一些特殊的需要,可以通过自定义指令的方式实现普通指令语法div hello-world/divhello-world/hello-world angular.module('myModule', []).contr

自定义指令

  • 指令增强了 HTML,提供额外的功能
  • 内置的指令基本上已经可以满足我们的绝大多数需要了
  • 少数情况下我们有一些特殊的需要,可以通过自定义指令的方式实现

普通指令

  • 语法
<div hello-world></div>
<hello-world></hello-world>
 angular.module('myModule', [])
      .controller('HelloController', ['$scope', function($scope) {
        $scope.customer = {
          name: '张伟',
          address: '五棵松下一站'
        };
      }])
      .directive('helloWorld', ['$log', function($log) {
        // 此处为指令工厂 工厂应该返回指令对象
        return {
          template: 'Name: {{customer.name}} Address: {{customer.address}}'
        };
      }])
  • 请参照资料-备课代码-01-custom-directive.html理解

内容转置

  • 把页面指令中的内容转置到指令中template中有ng-transclude指令的innerhtml中
  • transclude属性:bool
  • replace属性:bool 是否替换指令的dom元素
    • 请参照资料-备课代码-02-custom-directive.html理解

模板抽取

  • template属性是不支持html代码段换行的,所以把大量的html写在里面结构会很不清晰,我们可以借助templateUrl属性抽离模板页面
  • templateUrl属性就是以异步请求的方式去请求模板
    • 请参照资料-备课代码-02-custom-directive.html理解

指令的独立作用域

  • 每个模块中的$scope都有自己的独立作用域
    • 请参照资料-备课代码-04-scope.html理解
  • scope属性:object,可以实现指令的独立作用域
    • 请参照资料-备课代码-03-custom-directive.html理解

作用域的属性传递

  • 语法
 scope: {
     title: '@',
     type: '@'
        },
    <div class="row">
      <div class="col-md-4">
        <bs-panel type="default" title="panel1">
          lsdjfklsdjfklsajdflsdaj
        </bs-panel>
      </div>
      <div class="col-md-4">
        <bs-panel type="default" title="panel2">
          lsdjfklsdjfklsajdflsdaj
        </bs-panel>
      </div>

    </div>
  • @ 指的是当前属性在执行时会去取指令作用到的DOM元素的title
    • 请参照资料-备课代码-03-custom-directive.html理解

自定义指令的类型

  • restrict属性可以定义指令的使用类型

    1. E:Element(元素)
    2. A:Attribute(属性)
    3. C:Class(类名)
    4. M:Comment(注释)
  • 注意:在定义指令应该使用驼峰命名法,使用指令时应该使用的是全小写字母中划线分割的方式,注释的方式没有办法使用转置等功能

    • 请参照资料-备课代码-03-custom-directive1.html理解

指令中的dom操作

  • link属性是指令中可以操作dom元素的地方(css,属性,innerHtml)
    • 请参照资料-备课代码-05-link-directive.html理解
  • 语法
 link: function($scope, element, attributes) {
          // Scope是指令的scope,element是指令作用的dom元素,attributes是属性
          // 我们经常说的dom操作指的是css,属性,innerhtml这些操作
          element.on('mouseenter', function() {
            element.css('backgroundColor', 'red');
          }).on('mouseleave', () => {
            element.css('backgroundColor', 'transparent');
          });
        }

过滤器

  • 过滤器的主要用途就是一个格式化/筛选数据的小工具
  • 一般用于服务端存储的数据转换为用户界面可以理解的数据
    • 请参照资料-备课代码-06-filter.html理解

内置过滤器

  • 语法
    • 不同的过滤器语法不同
// 1: 需要过滤的数据,2: 过滤器的类型,3: 之后都是参数
{{ currency_expression | currency : symbol : fractionSize}}
  • 也可以引入语言包,然后直接给过滤器类型即可
  • 过滤器既可以在html中使用也可以在js中使用

常用的内置过滤器

currency
  • 定义本位币类型
date
  • 定义日期结构
json
  • 输出有格式的对象,配合pre标签用于调试
lowercase
  • 把大写字母变为小写字母
uppercase
  • 把小写字母变为大写字母
number
  • 定义小数点
limitTo
  • 截取字符串操作
filter
  • 模糊匹配对象中所有属性的值,和展示没有关系
  • 如果传入一个对象的话,会根据特定的属性检索
    • 请参照资料-备课代码-07-filter2.html理解
orderBy
  • 按照指定的对象属性排序
    • 请参照资料-备课代码-08-filter3.html理解

自定义过滤器

  • 根据自己的需求定义需要的过滤器
    • 请参照资料-备课代码-09-filter4.html理解

服务

内置服务

$http

  • 请求连接服务

自定义服务

factory

service

provider

路由

控制页面跳转的第三方插件

ng-route

ng-route使用步骤

  • npm install angular-route -save
  • 引入这个包
  • 在自己的模块中添加 ngRoute模块依赖
  • 路由配置(配置路由规则)
    • 规则指的就是 什么样的请求 找什么控制器
    • [{url:'/sdf',controller:'MainController'}]
  • 编写对应的控制器和视图

主要方法

  • when():配置路径和参数;
  • otherwise:配置其他的路径跳转,可以想成default。
  • controller:对应路径的控制器函数,或者名称
  • template:对应路径的页面模板,会出现在ng-view处,比如"
    xxxx
    "
  • templateUrl:对应模板的路径,比如"src/xxx.html"
  • redirectTo:重定向地址

ui-router

官网地址

ui-router使用步骤

  • 安装或者下载ui-router的包
  • 引入这个包
  • 在自己的模块中添加 ui-view模块依赖
  • 路由配置(配置路由规则)
    • 规则指的就是 什么样的请求 找什么控制器
    • [{url:'/sdf',controller:'MainController'}]
  • 编写对应的控制器和视图

ng-route和ui-router的区别

  • ng-route在一个页面中只能有一个坑
  • ui-router在页面中可以有多个坑
  • ui-router封装了ng-route

扩展

browser-sync

  • 安装npm install browser-sync -g
  • browser-sync start --server --files=".,*.html"

作用

  • 多浏览器同时浏览
  • 代码热更新

其他

wappalyzer

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Angular.js的作用域和数据绑定
    初识Angular.js通过初识Angular.js可以做一个简单的入门,下面开始做深入的了解吧。作用域作用域($scope)和应用的数据模型相关联的,同时作用域也是表达式执行的上下文。$scope对象是定义应用业务逻辑、控制器方法和视图属性的地方。 作用域是视图和控制器
    03-16
  • Angular 4 设置组件样式的几种方式
    Angular 4 设置组件样式的几种方式
      你用Angular吗?一.介绍  如何只改动最简单的css代码,呈现完全不一样的视图效果。第一种:最基本的设置:  图1 代码 图2 界面运行效果图平常,想给一个label或者p等标签添加样式,我们就是这样操作,在Angular中也是一样的。现在,如果我想要将字体换
    03-16
  • angularJSapi学习-angular.copy使用
    angular.copy使用效果:初始状态:输入信息后未保存状态:点击save后状态:当输入框内容和master内容不一致时:点击reset使得user的信息被重置为master中信息: 具体代码: 1 !DOCTYPE HTML 2 html ng-app="app" 3 headscript src="./angular.min.js"/script
    03-16
  • Ionic启动时提示:The Angular CLI requires a minimum Node.js version of eithor v10.13 or v12.0
    Ionic启动时提示:The Angular CLI requires a m
    在新建ionic项目后通过ionic serve 启动ionic项目时提示:The Angular CLI requires a minimum Node.js version of eithor v10.13 or v12.0  注:博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号霸道的程序猿获取编程相关电子书、教程推送与
    03-16
  • Angular.js之内置过滤器学习笔记 javascript过
    !DOCTYPE htmlhtml lang="en"headmeta charset="UTF-8"titleangularFilter/titlescript src="http://cdn.bootcss.com/angular.js/1.4.6/angular.js"/script/head  body ng-app="angularJS" ng-controller="ctrl"    div{{
    03-08
  • Angular 隨記
    Windows下更新Node 和NPM方法管理員模式打開powershell執行以下命令:Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Forcenpm install -g npm-windows-upgradenpm-windows-upgrade
    03-08
  • 双向数据绑定(angular,vue) 双向数据绑定指令
    最近github上插件项目更新了关于双向数据绑定的实现方式,关于angular和vue.angular众所周知是使用的脏检查($dirty)。一开始大家会认为angular开启了类似setInterval去不停的循环检查,性能极差,但其实并不是,$dirty是在一定条件下才会去执行,比如输入框
    03-08
  • 六、angular 生成二维码
    六、angular 生成二维码
    首先需要安装angular-qrcode :bower install monospaced/angular-qrcodenpm install angular-qrcode如何使用?在相应的需要使用二维码的页面增加如下代码:注意:这里的“version”和"size"可以根据github上面找出自己想要的结果:生成含有图片的二维码:这里
    03-08
  • angular.js简单入门。 angular入门教程
    angular.js简单入门。 angular入门教程
    小弟刚接触angular js  就写了一个简单的入门。后续慢慢补。。。首先看 html 页面。htmlmeta charset="UTF-8"headtitleangularJS/title/headscript type="text/javascript" src="./js/angular.min.js"/script      //引入 angularJSscript type="text/
    03-08
点击排行