angular十大常见问题


Posted in Javascript onMarch 07, 2017

AngularJS可以视为是一种数据优先的框架,在它的三个层面中,数据模型是骨架,视图模型和业务事件是血肉,视图模板和指令是皮毛,这三层合在一起,就形成了一个活生生的Web应用。

1.ng-if的情况下 ,始终将页面中的元素绑定到对象的属性(data.x)而不是直接绑定到基本变量(x)上。因为ng-if 会(隐式地)产生新作用域。

2.ng-repeat迭代数组的时候,如果数组中有相同值,会有什么问题,如何解决?  加 track by $index 可解决。也可以 trace by 任何一个普通的值

3.ng-click 中写的表达式,能使用 JS 原生对象上的方法吗?不能用,只要是在页面中,都不能直接调用原生的 JS 方法。因为这些并不存在于与页面对应的 Controller 的 $scope 中。

<p>{{13.14 | parseIntFilter}}</p>
app.filter('parseIntFilter', function(){
  return function(item){
    return parseInt(item);
  }
})

4.{{now | 'yyyy-MM-dd'}} 这种表达式里面,竖线和后面的参数通过什么方式可以自定义?

ng 内置的 filter 有九种:

date(日期)

currency(货币)

limitTo(限制数组或字符串长度)

orderBy(排序)

lowercase(小写)

uppercase(大写)

number(格式化数字,加上千位分隔符,并接收参数限定小数点位数)

filter(处理一个数组,过滤出含有某个子串的元素)

json(格式化 json 对象)

5.filter 有两种使用方法,一种是直接在页面里:

<p>{{now | date : 'yyyy-MM-dd'}}</p>

另一种是在 js 里面用:

// $filter('过滤器名称')(需要过滤的对象, 参数1, 参数2,...)
$filter('date')(now, 'yyyy-MM-dd hh:mm:ss');

自定义 filter

// 形式
app.filter('过滤器名称',function(){
  return function(需要过滤的对象,过滤器参数1,过滤器参数2,...){
    //...做一些事情 
    return 处理后的对象;
  }
}); 

// 栗子
app.filter('timesFilter', function(){
  return function(item, times){
    var result = '';
    for(var i = 0; i < times; i++){
      result += item;
    }
    return result;
  }
})

6.factory、service 和 provider 是什么关系?

factory返回的是一个对象,而service返回的是一个实例化对象,绑定到 this 的都可以被访问。provider 是加强版 factory,返回一个可配置的 factory

7.性能问题

作为 MVVM 框架,因为实现了数据的双向绑定,对于大数组、复杂对象会存在性能问题。

可以用来 优化 Angular 应用的性能 的办法:

减少监控项(比如对不会变化的数据采用单向绑定)

主动设置索引(指定 track by,简单类型默认用自身当索引,对象默认使用 $$hashKey,比如改为 track by item.id)

降低渲染数据量(比如分页,或者每次取一小部分数据,根据需要再取)

数据扁平化(比如对于树状结构,使用扁平化结构,构建一个 map 和树状数据,对树操作时,由于跟扁平数据同一引用,树状数据变更会同步到原始的扁平数据)

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
PPK 谈 JavaScript 的 this 关键字 [翻译]
Sep 29 Javascript
jquery的map与get方法详解
Nov 04 Javascript
用原生JS获取CLASS对象(很简单实用)
Oct 15 Javascript
JavaScript中自带的 reduce()方法使用示例详解
Aug 10 Javascript
基于angularjs实现图片放大镜效果
Aug 31 Javascript
Vue.js表单控件实践
Oct 27 Javascript
javascript 网页进度条简单实例
Feb 22 Javascript
ES6 javascript中class类的get与set用法实例分析
Oct 30 Javascript
vue-router的两种模式的区别
May 30 Javascript
使用JQuery自动完成插件Auto Complete详解
Jun 18 jQuery
js实现车辆管理系统
Aug 26 Javascript
electron踩坑之dialog中的callback解决
Oct 06 Javascript
Bootstrap表单控件学习使用
Mar 07 #Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
Mar 07 #Javascript
Bootstrap进度条实现代码解析
Mar 07 #Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
Mar 07 #Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
Mar 07 #Javascript
js仿网易表单及时验证功能
Mar 07 #Javascript
JS完成画圆圈的小球
Mar 07 #Javascript
You might like
Home Coffee Roasting
2021/03/03 咖啡文化
MySql中正则表达式的使用方法描述
2008/07/30 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
php对象工厂类完整示例
2018/08/09 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
javascript比较文档位置
2008/04/08 Javascript
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
2011/12/26 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
js实现下一页页码效果
2017/03/07 Javascript
深入理解vue-loader如何使用
2017/06/06 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
图书室管理制度
2014/01/19 职场文书
九年级数学教学反思
2014/02/02 职场文书
爱护公物演讲稿
2014/09/09 职场文书
Python访问Redis的详细操作
2021/06/26 Python
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
python3中apply函数和lambda函数的使用详解
2022/02/28 Python