您的位置:首页 > Web前端 > AngularJS

Angular 使用个人总结

2016-02-23 17:15 681 查看
1. 把控制器中与视图无关的逻辑都移到"服务(service)"中

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: