首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
AngularJS简介
Hello Angular
依赖注入
作用域
数据绑定:数据->模板
数据绑定:模板->数据
数据->模板->数据->模板
angular定义模板内容
angular内容渲染控制
angular节点控制
angular事件绑定
angular表单控件
angular排序 orderBy
angular过滤列表 filter
angular路由定义
angular路由参数定义
angular路由业务处理
定义模板变量标识标签
angular与HTTP请求
angular上下文绑定
angular对象处理
angular缓存
angular计时器
angular表达式函数化
angular模板单独使用
模块和服务的概念与关系
angular定义模块
angular定义服务
引入模块并使用服务
当前位置:
首页>>
技术小册>>
AngularJS学习指南
小册名称:AngularJS学习指南
injector 先看我们之前代码中的一处函数定义: `var BoxCtrl = function($scope, $element){}` 在这个函数定义中,注意那两个参数: $scope , $element ,这是两个很有意思的东西。总的来说,它们是参数,这没什么可说的。但又不仅仅是参数——你换个名字代码就不能正常运行了。 事实上,这两个参数,除了完成“参数”的本身任务之外,还作为一种语法糖完成了“依赖声明”的任务。本来这个函数定义,完整的写法应该像 AMD 声明一样,写成: ` var BoxCtrl = ['$scope', '$element', function(s, e){}];` 这样就很明显,表示有一个函数,它依赖于两个东西,然后这两个东西会依次作为参数传入。 简单起见,就写成了一个函数定义原本的样子,然后在定义参数的名字上作文章,来起到依赖声明的作用。 在处理时,通过函数对象的 toString() 方法可以知道这个函数定义代码的字符串表现形式,然后就知道它的参数是 $scope 和 $element 。通过名字判断出这是两个外部依赖,然后就去获取资源,最后把资源作为参数,调用定义的函数。 所以,参数的名字是不能随便写的,这里也充分利用了 js 的特点来尽量做到“反省”了。 在 Python 中受限于函数名的命名规则,写出来不太好看。不过也得利于反省机制,做到这点也很容易: ```asp # -- coding: utf-8 -- def f(Ia, Ib): print Ia, Ib args = f.func_code.co_varnames SRV_MAP = { 'Ia': '123', 'Ib': '456', } srv = {} for a in args: if a in SRV_MAP: srv[a] = SRV_MAP[a] f(**srv) ```
上一篇:
Hello Angular
下一篇:
作用域
该分类下的相关小册推荐:
AngularJS面试指南
Angularjs入门教程