Angular 实践之Controller As
来源:互联网 发布:淘宝刷好评免费赠衣服 编辑:程序博客网 时间:2024/06/01 07:45
Angular Controller声明
入门
学习angular是从下面这一段代码开始
- 1
- 2
- 3
- 1
- 2
- 3
- 1
- 2
- 3
- 1
- 2
- 3
然后Duge就会出现在div下的span中了,很简单的数据绑定,而且是双向的。这意味着可以很简单的通过改变js对象来影响dom的value了。
复杂场景
很多时候一个controller并不能满足业务需求。
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
这个时候,span中会显示什么呢?
熟悉变量作用域的我很轻易的判断出,应该会显示Bill。事实也确实如此。
看起来angular在一些基本行为上,和普通的语言或者框架,是有一些共同之处的。
那么,考虑这种情况,在ChildController的div中,显示ParentController的name。
可以通过scope的继承关系。
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
如何再加一个controller在中间呢?
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 1
- 2
- 3
这个时候,br中的name就变成Mill了。
当然,如果去掉MiddController中的name,br中的name依然还是Ada。这是因为子scope默认会继承父scope的属性。当MiddController中没有name时,ParentController中的name就会被‘添加’到MiddController中,这样,ChildController就会通过$parent.name获取到这个name了。这是题外话。
可见,通过嵌套关系来访问一些变量是很不牢固可靠的。如果嵌套关系改变,就需要重新调整html中的表达式。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
更好的方法
angular有针对这个的解决方法,这也是推荐的方式。
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
span中就是ParentController中name,br中就是ChildController中name。这里的name也不需要绑定到
pc和cc可以认为分别是ParentController和ChildController的实例(instance)。
通过instance的名字来访问属性,非常的方便,而且明了。即使html结果发生变化,也不影响使用。如下
- Angular 实践之Controller As
- Angular 实践之Controller As
- angular controller as
- angular controller as syntax vs scope
- angular controller as syntax vs scope
- [angular]指令之5controller
- angular 之 控制器 controller详解
- Angular最佳实践之$http-麻雀虽小 五脏俱全
- SpringMVC4.1之Controller层最佳实践
- SpringMVC4.1之Controller层实践
- angular controller的使用
- Angular.js 指令 & Controller
- angular controller 依赖声明
- angular controller不执行
- 测试angular中的controller
- angular controller不起作用解决方案
- angular controller错误
- angular--控制器controller
- TCP格式&&可靠性保证&&URG PSH区别
- 10.js.数组和函数
- 2
- AJAX闭包操作
- Android混合开发之WebView与Javascript交互
- Angular 实践之Controller As
- android studio 运行时无法识别真机
- Mysql中各类型对应JDBC类型编号
- Netty4.0学习笔记系列之四:混合使用coder和handler
- 地平线2018电话面试
- 记一个错误
- BeanUtil 反射机制 拷贝对象类或list
- mybatis
- 如何使用七牛申请并使用免费SSL证书