Angular 使用个人总结
2016-02-23 17:15
681 查看
1. 把控制器中与视图无关的逻辑都移到"服务(service)"中
2. 新手常犯错误
当在路由中已经指定了controller,就要把html中的移除,比如`<body ng-app="7minWorkout" ng-controller="WorkoutController">`,否则会有两个controller,会出现加载两次的情况。
3. 本质上,当写directive时令时。当我们设置了link参数,实际上是创建了一个postLink() 链接函数,以便compile() 函数可以定义链接函数。编译函数(compile)负责对模板DOM进行转换。 链接函数(link)负责将作用域和DOM进行链接。
个人理解compile函数的功能更强。
详情内容:[译]ng指令中的compile与link函数解析
4. 使用ng-repeat指令,为防止重复值发生的错误。加上track by $index。
5. 关于向父子controller中传递内容。
`$emit` 只能向parent controller传递event与data
`$broadcast` 只能向child controller传递event与data
`$on` 用于接收event与data
2. 新手常犯错误
当在路由中已经指定了controller,就要把html中的移除,比如`<body ng-app="7minWorkout" ng-controller="WorkoutController">`,否则会有两个controller,会出现加载两次的情况。
$routeProvider.when('/workout', { templateUrl: 'partials/workout.html', controller: 'WorkoutController' });
3. 本质上,当写directive时令时。当我们设置了link参数,实际上是创建了一个postLink() 链接函数,以便compile() 函数可以定义链接函数。编译函数(compile)负责对模板DOM进行转换。 链接函数(link)负责将作用域和DOM进行链接。
.... compile: function compile(tElement, tAttrs, transclude) { return { pre: function preLink(scope, iElement, iAttrs, controller) { ... }, post: function postLink(scope, iElement, iAttrs, controller) { ... } } }, link: function postLink(scope, iElement, iAttrs) { ... } ...
个人理解compile函数的功能更强。
详情内容:[译]ng指令中的compile与link函数解析
4. 使用ng-repeat指令,为防止重复值发生的错误。加上track by $index。
<li ng-repeat="i in ctrl.list track by $index">{{ i }}</li>
5. 关于向父子controller中传递内容。
`$emit` 只能向parent controller传递event与data
`$broadcast` 只能向child controller传递event与data
`$on` 用于接收event与data
相关文章推荐
- Angularjs自定义指令之三级联动---地理位置的选择
- 深入理解Angular作用域
- angularJs 中controller与sever
- angularJS $watch $timeout 使用心得
- angularJS directive详解
- [转]通过AngularJS directive对bootstrap日期控件的的简单包装
- angularJs学习笔记-入门
- Ionic+angularjs 系列文章学习记录
- AngularJS 表达式 与 JavaScript 表达式
- gulp 在 angular 项目中的使用
- Angular源码理解–启动过程
- AngularJS表达式中的HTML内容
- angularjs中判断ng-repeat是否迭代完
- 【20】AngularJS 参考手册
- 【19】AngularJS 应用
- 【18】AngularJS 包含
- angular2 中文学习资料整理
- 【17】AngularJS Bootstrap
- 【16】AngularJS API
- 【15】AngularJS 输入验证