首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【17】进大厂必须掌握的面试题-50个Angular面试

Angular中的指令是什么? Angular的核心功能是指令,这些属性使您可以编写 特定于应用程序的新HTML语法。它们本质上是在Angular编译器在DOM中找到它们时执行的函数。...Angular中的service()是用于应用程序业务层的函数。它作为构造函数运行,并在运行时使用’new’关键字调用一次。...AOT编译器可以丢弃未使用的指令,这些指令会使用摇树工具进一步丢弃。 23.解释jQLite。 jQlite也称为 jQuery lite是jQuery的子集,包含其所有功能。...Angular组件具有离散的生命周期,其中包含从出生到死亡过渡的不同阶段。为了更好地控制这些阶段,我们可以使用以下方法将其连接: 构造函数: 通过在类上调用new创建组件或指令时将调用它。...48.在Angular中解释ng-app指令。 ng-app指令用于定义Angular应用程序,使我们可以在Angular应用程序中使用自动引导。

41.5K51

ionic3应该善用组件和指令

angular4提供了很多功能强大的内置指令,但在现实情况中,这些内置指令可能还不能完全满足实际要求,这时我们就需要编写自定义指令来实现特定要求。...在angular1时代,组件和指令是一回事,即严格来说,没有组件这概念,只有指令,而到了angular2时代,虽说组件仍是一种特殊的指令,但已经有一定目的明显区分开来,分别用Directive和Component...在构造函数constructor加上一句,赋值默认颜色: import { Directive, Input, ElementRef } from '@angular/core'; @Directive...Renderer来代替ElementRef使用,有兴趣的可以自行了解下Renderer 3)使用指令 如果调用的页面用了懒加载,在调用指令的页面module.ts里导入指令并声明,反之,在app.module.ts...@Input装饰器修饰,然后用set方法触发获得值后的操作。

3.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    (转) 别再对 Angular 表单的 ControlValueAccessor 感到迷惑

    首先我解释下为啥需要 ControlValueAccessor 接口以及它在 Angular 中是如何使用的。...本文我将使用原生表单控件术语来区分 Angular 特定的 formControl 和你在 html 使用的表单控件,但你需要知道任何一个自定义表单控件都可以和 formControl 指令进行交互,而不是原生表单控件如...,当 Angular 在组件模板中中遇到 input 或 textarea DOM 原生控件时,会使用DefaultValueAccessor 指令: @Component({ selector:...,包括上面代码中的 formControl 指令,都会调用 setUpControl 函数来让表单控件和DefaultValueAccessor 实现交互(译者注:意思就是上面代码中绑定的 formControl...在registerOnChange 里我们简单保存了对回调函数 fn 的引用,回调函数是由 formControl 指令传入的(译者注:参考 L85),只要每次 slider 组件值发生改变,就会触发这个回调函数

    3.8K20

    Angular快速学习笔记(3) -- 组件与模板

    显示数据 在 Angular 中最典型的数据显示方式,就是把 HTML 模板中的控件绑定到 Angular 组件的属性。...Angular 管道对像这样的小型转换来说是个明智的选择。 管道是一个简单的函数,它接受一个输入值,并返回转换结果。 它们很容易用于模板表达式中,只要使用管道操作符 (|) 就行了。...ngOnInit() 在 Angular 第一次显示数据绑定和设置指令/组件的输入属性之后,初始化指令/组件。...在 Angular 销毁指令/组件之前调用 OnInit钩子 使用 ngOnInit() 有两个原因: 在构造函数之后马上执行复杂的初始化逻辑 在 Angular 设置完输入属性之后,对该组件进行准备.../app.component.scss'] }) 6.属性指令 在 Angular 中有三种类型的指令: 组件 — 拥有模板的指令 结构型指令 — 通过添加和移除 DOM 元素改变 DOM 布局的指令

    15.3K30

    Angular入门,开发环境搭建,使用Angular CLI创建你的第一个Angular项目

    Angular中的生命周期函数: 什么是生命周期函数?...生命周期钩子:https://angular.cn/guide/lifecycle-hooks 当 Angular 使用构造函数新建一个组件或指令后,就会按下面的顺序在特定时刻调用这些生命周期钩子方法:...ngOnInit() 在 Angular 第一次显示数据绑定和设置指令/组件的输入属性之后,初始化指令/组件。 在第一轮 ngOnChanges() 完成之后调用,只调用一次。...ngOnDestroy() 每当 Angular 每次销毁指令/组件之前调用并清扫。 在这儿反订阅可观察对象和分离事件处理器,以防内存泄漏。 在 Angular 销毁指令/组件之前调用。...Angular项目创建并运行: 通过Angular脚手架创建一个新的项目: 在终端(win+r 输入cmd)中打开E:\Angular 文件目录,输入一下命令新建项目: ng new MyAngularProject

    2.8K20

    Angular2 之 结构型指令几个概念

    它仍然附加子啊它所属于的DOM元素上,它仍然在监听事件。angular会继续检查哪些能影响数据绑定的变更。组件原本要做的哪些事情仍然在进行!它还是占用着那么多的资源。...总结 基于上面的利弊分析,无论是我们在使用内置的指令还是使用自定的指令的时候,我们应该自己分析提添加、移除元素以及创建和销毁组件的后果。...在Angular应用之外,标签的默认CSS属性display是none 。 它的内容存在于一个隐藏的文档片段中。... 这时候显示的内容是'Hip! Hooray!',在Angular的控制下,DOM的效果是不同的。 ?...* 我们把它们都作为私有变量注入到构造函数中。 * viewContainer 往这里面去添加,指向的是Template,这是边界,这样界定。

    3K20

    ng 核心模块

    angular.forEach 为obj集合中的每个项执行iterator函数,obj可以是一个对象或者是数组。...使用这个指令去自动启动一个AngularJS应用。ngApp指令指定应用的根元素并且通常放置在接近页面的根元素 – 例如 在body或者html标签上。...使用Angular标记类似于{{hash}}在一个href属性中,如果点击的时机早于Angular替换{{hash}}标记将导致连接到错误的URL。...使用Angular 标记例如{{hash}}在一个src属性中不能正确工作:浏览器将从带有{{hash}}的URL中获取资源直到Angular替换了这个表达式。使用ngSrc指令可以解决这个问题。...使用Angular 标记例如{{hash}}在一个srcset属性中不能正确工作:浏览器将从带有{{hash}}的URL中获取资源直到Angular替换了这个表达式。

    1.2K10

    AngularDart 4.0 高级-结构指令 顶

    每个结构指令都与该模板有所不同。 三种常见的内置结构指令 - NgIf,NgFor和NgSwitch ... - 在模板语法指南中进行了描述,并在整个Angular文档中的示例中进行了介绍。...您可以在分配给ngFor的字符串中启用这些功能,这是您在Angular的microsyntax中编写的。...虽然很少有理由在模板属性或元素形式中应用结构指令,但了解Angular创建并了解它的工作原理仍然很重要。 当你编写自己的结构指令时,你会参考。...满足Angular模板中的类似需求。 编写一个结构指令 在本节中,您将编写一个与NgIf相反的UnlessDirective结构指令。 NgIf在条件为true时显示模板内容。...你在指令构造函数中注入这两个类作为类的私有变量。

    16.1K20

    (4)Angular的开发

    angular框架,库,是一款非常优秀的前端高级JS框架,有了这个框架就可以轻松构建SPA应用程序,通过指令宽展了HTML,通过表达式绑定数据到HTML。...image.png AngularJS MVC 模块化 自动化双向数据绑定 指令系统 下载 Angular.js 的包 https://github.com/angular/angular.js...image.png HTML 页面中 ng-xxx 的属性称之为指令 ng-app 指令告诉 AngularJS, 元素是 AngularJS 应用程序管理的边界 ng-model 指令把文本框的值绑定到变量...name 上 Angular 最大程度的减少了页面上的 DOM 操作 让 JavaScript 中专注业务逻辑的代码 通过简单的指令结合页面结构与逻辑数据 通过自定义指令实现组件化编程 我们需要本地运行...通过$scope对象把数据模型或函数行为暴露给视图 监视模型的变化,做出相应的动作 // 监视购物车内容变化,计算最新结果 $scope.

    3.1K40

    【Angular专题】——(1)Angular,孤傲的变革者

    如果说Vue能激发开发者的兴趣,让你快速上手拿出作品,React能够强迫开发者深耕javascript语言本身的特性和组件化思想,那么Angular带给前端开发者的,更多的是正统的面向对象开发和软件工程的思维方式...,Angularjs1.X中组件化的实现是基于自定义指令的,1-2年经验却未尝试过使用自定义指令的开发者比比皆是,造成的直接结果就是常常一个controller中的代码好几千行,代码里混合着各种DOM操作...只传入必要的启动参数,然后在小模块中实现业务自治,并通过controller来实现不同小模块之间的通讯,这样每个模块的代码量基本就可以做到小于500行,接着把DOM操作尽量整合进指令的link函数中,配合框架自身的生命周期特点来运行...(已完成) 2.阅读官方文档:Angular中文网地址:https://www.angular.cn/ 官方文档特别详细,至少需要通读一次,然后在实际开发中遇到相关问题时再来查询。...如果有实战项目,那是最好的,实战中的学习是最快的;如果没有实战项目,那么你应该关注它的核心概念和原理,响应式编程是什么东西,新的Angular中的DI系统有什么变化,修饰器是如何工作的等等,框架和实现细节或许会变化

    86220

    AngularDart4.0 高级-属性(Attribute)指令 顶

    Angular为每个匹配元素创建一个指令控制器类的新实例,将HTML元素注入到构造函数中。... 现在在AppComponent中引用此模板,并将Highlight指令添加到指令列表中。 当Angular在模板中遇到myHighlight时,就会识别该指令。...它创建了一个HighlightDirective类的实例,并将元素的引用注入到指令的构造函数中,该构造函数将元素的背景样式设置为黄色。...处理程序委托给一个帮助器方法,该方法设置DOM元素_el的颜色,在构造函数中声明并初始化它。...通过@Input数据绑定将值传入指令 目前,高亮颜色在指令中被硬编码。 这是不灵活的。 在本节中,您将为开发人员提供在应用指令时设置突出显示颜色的能力。

    3.2K10

    AngularDart 4.0 高级-生命周期钩子 顶

    生命周期序列 通过调用其构造函数创建组件/指令后,Angular在特定时刻按以下顺序调用生命周期钩子方法: 钩子 作用和时机 ngOnChanges Angular(重新)设置数据绑定输入属性时响应。...构造函数本身不是一个Angular钩子。 日志确认输入属性(在这种情况下的name属性)在构造时没有分配的值。...Angular团队负责人Misko Hevery解释了为什么您应该避免使用复杂的构造函数逻辑。 不要在组件构造函数中获取数据。您不应该担心当在测试下创建或决定显示之前时新组件会尝试联系远程服务器。...构造函数不应仅仅将初始局部变量设置为简单值。 ngOnInit是组件获取其初始数据的好地方。 教程和HTTP章节显示了如何。 还要记住,指令的数据绑定输入属性在构建之后才会设置。...这就是深度初始化逻辑所属的地方。 OnDestroy 将清理逻辑放入ngOnDestroy中,在Angular销毁指令之前必须运行的逻辑。 这是通知应用程序的另一部分组件将要销毁的时间。

    6.2K10

    VUE2.0如何追踪数据变化?

    Angular 1 中,采用脏检查机制,缺点是:当watcher越来越多时,作用域内每一次变化,所有watcher都要重新计算。...Directive(Component Render Function):指令负责将model和DOM关联起来,在watcher触发下,它可以根据最新的数据重新编译模板,并最终重绘UI(vue2.0在重绘...下面是一张更加详细的剖析图(图内的方法名只作为示例): vue-data.png 从上图可以更清楚的看到: 每个指令都对应一个watcher(在编译指令时,就会初始化这个watcher)。...数据对象的每个属性,都包含一个Dep实例对象,用于存储关心该属性变化的watchers。 在model--->UI渲染过程中,通过数据属性的get函数,可以添加相对应的watcher到Dep对象中。...当触发UI更新操作(比如,input框输入某些内容),即UI--->Model--->UI这个过程中,首先触发对应数据属性的set函数,然后订阅者容器Dep对象发布消息通知notify,随后,所有订阅者

    1.2K20

    AngularDart4.0 指南-体系结构概述 顶

    AngularDart(我们通常在这个文档中简单地称为Angular)是一个框架,用于在HTML和Dart中构建客户端应用程序。...您可以通过使用Angular的标记组合HTML 模板,编写组件类来管理这些模板,在服务中添加应用程序逻辑以及在模块中装入组件和服务来编写Angular应用程序。 然后,通过引导根模块启动应用程序。...这是告诉Angular这个组件的构造函数需要HeroService的一种方法,这样它就可以获得显示的英雄列表。 ? @Component中的元数据告诉Angular从哪里获取为组件指定的主要构建块。...属性指令会改变现有元素的外观或行为。 在模板中,它们看起来像常规的HTML属性,因此也就是名称。 实现双向数据绑定的ngModel指令是一个属性指令的例子。...如果请求的服务实例不在容器中,那么在将服务返回给Angular之前,注入器将创建一个并将其添加到容器中。 当所有请求的服务已经解析并返回时,Angular可以用这些服务作为参数调用组件的构造函数。

    7.9K30

    3、Angular JS 学习笔记 – Controllers

    理解控制器 在Angular中,一个控制器是一个javascript构造函数用于填充Angular作用域。...当一个控制器通过使用ng-controller指令附加到DOM上的时候,Angular将初始化一个新的Controller对象,使用指定的控制器构造函数。...格式化输入 – 应该使用angular表单控制器处理 过滤输出 – 应该使用angular过滤器处理 在多个控制器中共享代码或状态 – 应该使用angular service。...; }]); 我们创建一个Angular模块名称为myApp为我们的应用。然后我们添加控制器构造函数到模块,使用.controller方法。这样儿是保持控制器构造函数不放在全局作用域中。...我们附加我们的控制器到DOM使用ng-controller指令,greeting属性现在就可以数据绑定到模板了。

    2.5K20

    Angular 自定义属性指令

    本文将使用 UltimateAngular/angular-pro-src 中的示例,来一步步介绍自定义属性指令的相关知识。...要实现这个功能,我们可以监听 span 元素的 mouseover 和 mouseout 事件,在对应的回调函数中,控制 tooltip 元素的显示和隐藏。...针对这个问题,我们可以在定义指令时,设置 exportAs 属性: @Directive({ selector: '[tooltip]', exportAs: 'tooltip' }) 之后,我们就可以在模板中...Angular 表单模块中,也大量使用了 exportAs 属性,比如 ngModel、ngForm、ngModelGroup 及 formControl 指令等。...本文通过 CreditCardDirective 和 TooltipDirective 两个指令,介绍了 Angular 自定义属性指令所涉及的相关的基础知识,若想继续深入学习的话,可以阅读 Angular

    2K30

    再谈angularJS数据绑定机制及背后原理—angularJS常见问题总结

    循环 新的 $digest 循环未检测到变化 浏览器拿回控制器,更新 $scope. val.新值对应的 dom 在调用了$scope....假设你在一个ng-click指令对应的handler函数中更改了scope中的一条数据,此时AngularJS会自动地通过调用$digest()来触发一轮$digest循环。...对象,依次解析根节点后代,根据多种条件查找指令,并完成每个指令相关的操作(如指令的作用域,控制器绑定以及transclude等),最终返回每个指令的链接函数,并将所有指令的链接函数合成为一个处理后的链接函数...Function(angular.Scope,cloneAttachFn=) maxPriority:只有在指令比给定的优先级低时应用。...应用骨架 AngularJs $compile编译服务与指令 玩转Angular1(14)--使用$compile编译指令 Angular中$compile源码分析 angularjs使用$compile

    7.9K40

    Angular6自定义表单控件方式集成Editormd

    曾经找到过“Editor.md”,看之心喜,一直想在Angular中集成下这款markdownpad编辑器玩,在网上也只找到一篇通过指令集成的,虽然可以实现,但还是希望能做成组件形式的,之后看到一篇自定义组件的文章...(isDisabled: boolean): void; } writeValue:在初始化的时候将formControl的值传递给原生表单控件(即,将模型中的新值写入视图或 DOM 属性中); registerOnChange...:用来获取原生表单控件的值更新时通知Angular表单控件更新的函数(即,设置当控件接收到 change 事件后,调用的函数) registerOnTouched:用来获取通知用户正在交互的函数(即,设置当控件接收到...touched 事件后,调用的函数)。...formControl指令的实现: // https://github.com/angular/angular/blob/master/packages/forms/src/directives/reactive_directives

    5.2K20
    领券